I have something similar scenario. I need to select the nodeset using 'key'
and pass this to other templates.
If I do like below, I am getting tree fragment.
<xsl:variable name="switch">
<xsl:template name="pTH">
<xsl:param name="cT"/>
<xsl:for-each select="$fieldHeaders">
<xsl:for-each select="key('customerLookup',
$cT/ancestor-or-self::customerList/@id)/*">
<xsl:value-of select="name(.)"/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:variable>
How do I achieve this?
Thanks,
Ganesh.
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of
Lars Huttar
Sent: Wednesday, January 07, 2004 1:48 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] How to assign a nodelist to a variable
Hi all....
I need to do something like:
<xsl:value-of select="ROW[field1 = 'A' and field2 = 'B']/f1" />
<xsl:value-of select="ROW[field1 = 'A' and field2 = 'B']/f2" />
<xsl:value-of select="ROW[field1 = 'A' and field2 = 'B']/f3" />
Since I need to call ROW[field1 = 'A' and field2 = 'B']
repeteadly, I think that by placing it in a variable first
will be better, so I tried:
<xsl:variable name="valores"><xsl:value-of select="ROW[field1
= 'A' and field2 = 'B']" /></xsl:variable>
This should be changed to:
<xsl:variable name="valores" select="ROW[field1 = 'A' and field2 = 'B']" />
When a variable is given its value via the select attribute,
it can remain a nodeset.
When the value is given as the content (child[ren]) of xsl:variable,
it gets converted to a result tree fragment, which cannot be used
as a nodeset in XSL 1.0.
Lars
and then called:
<xsl:value-of select="$valores/f1" />
<xsl:value-of select="$valores/f2" />
<xsl:value-of select="$valores/f3" />
but I receive the error:
"Reference to variable or parameter 'valores' must evaluate
to a node list."
What should I do?
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list