From: Jaime A Stuardo Bahamondes [mailto:jstuardo(_at_)security(_dot_)cl]
Sent: Wednesday, January 07, 2004 2:30 PM
Subject: [xsl] How to assign a nodelist to a variable
<xsl:variable name="valores"><xsl:value-of select="ROW[field1
= 'A' and field2 = 'B']" /></xsl:variable>
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?
VFAQ. An XSLT variable which contains a template body (such as the value-of
element in your example) always returns a result tree fragment, which in
XSLT 1.0 cannot be directly evaluated as a node-set. Write your variable
as:
<xsl:variable name="valores" select="ROW[field1 = 'A' and field2 = 'B']"/>
Not only does this return a node-set, it's more efficient.
If you're using an XPath expression to set the value of a variable, you
should always use the select attribute so you can take advantage of the
built-in data types.
hth,
b.
| brian martinez
brian(_dot_)martinez(_at_)cendant(_dot_)com |
| lead gui programmer 303.357.3548 |
| cheap tickets, part of trip network fax 303.357.3380 |
| 6560 greenwood plaza blvd., suite 400 englewood, co 80111 |
| cendant travel distribution services http://www.cheaptickets.com/ |
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list