This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Passing Variable into an external xml document template
- To: xsl-list at mulberrytech dot com
- Subject: Re: Passing Variable into an external xml document template
- From: "Sia Rahimi" <sia_rahimi at hotmail dot com>
- Date: Wed, 16 Aug 2000 22:28:47 GMT
- Reply-To: xsl-list at mulberrytech dot com
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