Subject: RE: 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
|