xsl-list
[Top] [All Lists]

RE: combining two variables to generate XPATH

2002-12-17 14:54:45
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(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


From: Mark Wilgus <mwilgus(_at_)cisco(_dot_)com>

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(_at_)hotmail(_dot_)com]

       <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