RE: [xsl] combining two variables to generate XPATH

Subject: RE: [xsl] combining two variables to generate XPATH
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 17 Dec 2002 21:54:45 -0000
> Is that FAQ outdated??  I know that the following code works 
> just fine:
> 
> <xsl:template match="proc">
>   <xsl:call-template name="foo">
>     <xsl:with-param name="node" select="." />
>   </xsl:call-template>
> </xsl:template>
> 
> <xsl:template name="foo">
>   <xsl:param name="node"/>
>   <xsl:for-each select="$node/branch/leaf">
>     <xsl:value-of select="@id" />
>   </xsl:for-each>
> </xsl:template>
> 
> What is different about a path with a single variable, and a 
> path with two 
> variables?  Why can't I specify a second variable:
> 
> <xsl:template name="foo">
>   <xsl:param name="node"/>
>   <xsl:param name="branch" select="'someBranch'"/>
>   <xsl:for-each select="$node/$branch/leaf">
>     <xsl:value-of select="@id" />
>   </xsl:for-each>
> </xsl:template>
>

The first step in a path expression can be any expression that returns a
node-set. The value of $node is a node-set. In XPath 2.0, subsequent
steps can also be expressions that return a node-set. But they can't be
expressions that return strings: the value of $branch is not a node-set,
it is a string.

XPath variables represent values, they aren't macros that represent
parts of an expression.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 
> 
> 
> >From: Mark Wilgus <mwilgus@xxxxxxxxx>
> >
> >I believe this is not possible.  XSLT doesn't allow you
> >to use a variable for an XPath expression.  See number 2 at the 
> >following list:
> >
> >http://www.dpawson.co.uk/xsl/sect2/nono.html
> >
> > > -----Original Message-----
> > > From: bix xslt [mailto:bix_xslt@xxxxxxxxxxx]
> 
> > > >        <xsl:variable name="branch" 
> > > >select="concat($node,'/',$type,'/item')" />
> > > >        <xsl:value-of select="$branch" />
> > > ><!--        <xsl:for-each select="$branch">
> > >
> 
> 
> 
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online 
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


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


Current Thread