Re: Passing Variable into an external xml document template

Subject: Re: Passing Variable into an external xml document template
From: "Sia Rahimi" <sia_rahimi@xxxxxxxxxxx>
Date: Wed, 16 Aug 2000 22:28:47 GMT
Thank you Gary, that works great.

Also, Thanks for your explanation.


From: Gary L Peskin <garyp@xxxxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxx
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"/>


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="";> > <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:

________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at

XSL-List info and archive:

Current Thread