This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Passing Variable into an external xml document template


Thank you Gary, that works great.

Also, Thanks for your explanation.

Sia.

>From: Gary L Peskin <garyp@firstech.com>
>Reply-To: xsl-list@mulberrytech.com
>To: xsl-list@mulberrytech.com
>Subject: Re: Passing Variable into an external xml document template
>Date: Wed, 16 Aug 2000 14:24:54 -0700
>
>Sia --
>
>document('Menus.xml') in your apply-templates returns the root node of
>the Menus.xml document.  This is then used for the apply-templates.
>Since you do not have a rule matching the root node, the built-in root
>node rule is used.  This invokes apply-templates for each child of the
>root.  In this case, that's the MenuTreeList template.  However, since
>this is invoked from the built-in rule, no parameters are passed.
>
>Change your select to document('Menus.xml')/MenuTreeList and everything
>should work as you want.
>
>Also, you'll need a closing quote after theMenu in:
>
>        <xsl:with-param name="theMenu select="MenuName"/>
>
>HTH,
>Gary
>
>
>Sia Rahimi wrote:
> >
> > Hi,
> >
> > Known:
> > (1) How to pass parameters to a template
> > (2) How to use an an external xml file
> >
> > Problem:
> > Within the template of an external xml file,
> > I want to process based on the parameter Passed in.
> >
> > XML main:
> > <MenuDisplay>
> >   <MenuName>Main</MenuName>
> > </MenuDisplay>
> >
> > XML external (Menus.xml):
> > <MenuTreeList>
> >   <MenuTree name="Login">
> >     <MenuItem>
> >       <Text>Please Login</Text>
> >     </MenuItem>
> >   </MenuTree>
> >   <MenuTree name="Main">
> >     <MenuItem>
> >       <Text>System News</Text>
> >     </MenuItem>
> >     <MenuItem>
> >         <Text>Customer Menu</Text>
> >     </MenuItem>
> >   </MenuTree>
> > </MenuTreeList>
> >
> > XSL:
> > <xsl:stylesheet
> >   version="1.0"
> >   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> >   <xsl:template match="MenuDisplay">
> >     <xsl:apply-templates select="document('Menus.xml')">
> >       <xsl:with-param name="theMenu select="MenuName"/>
> >     </xsl:apply-templates>
> >   </xsl:template>
> >   <xsl:template match="MenuTreeList">
> >     <xsl:param name="theMenu"/>
> >     <xsl:apply-templates select="MenuTree[@name=$theMenu]"/>
> >   </xsl:template>
> > </xsl:stylesheet>
> >
> > It seems that the parameter theMenu is not set.
> >
> > Thanks to Jeni's site I have come this far, but, although
> > the current problem seems like another problem answered by Jeni
> > "Re:Loading an external file of index" it does not seem to
> > work for me. (using xalan).
> >
> > Thanks for any help you may be able to provide.
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]