RE: [xsl] How to assign a nodelist to a variable

Subject: RE: [xsl] How to assign a nodelist to a variable
From: "Martinez, Brian" <brian.martinez@xxxxxxxxxxx>
Date: Wed, 7 Jan 2004 13:46:18 -0700
> From: Jaime A Stuardo Bahamondes [mailto:jstuardo@xxxxxxxxxxx]
> 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.martinez@xxxxxxxxxxx |
| 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


Current Thread