Subject: RE: Applying for-each loop to variable that contains resulttree fragment
From: Américo Albuquerque <aalbuquerque@xxxxxxxxxxxxxxxx>
Date: Wed, 7 May 2003 20:19:27 +0100
|
Hi.
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Shirley Peter
> Sent: Wednesday, May 07, 2003 8:08 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Applying for-each loop to variable that
> contains result tree fragment
>
>
> Apologies - the email wasn't complete ...
>
> I want to use a variable as the context for a for-each
> loop.
> i.e. <xsl:for-each select="$var">
>
> However the content of this variable is dependent on
> some conditions, and therefore the body of the
> variable is used to determine this.
> e.g.
> <xsl:variable name="var">
> <xsl:if test="somecondition">
> <xsl:value-of select="nodes1"/>
> </xsl:if>
> <xsl:if test="othercondition">
> <xsl:value-of select="nodes2"/>
> </xsl:if>
> </xsl:variable>
>
> I get an error in the for-each loop: "Can not convert
> #RTREEFRAG to a NodeList!"
You could use x:node-set() function (x will depend on your xslt
processor) like:
<xsl:for-each select="x:node-set($var)">
....
</xsl:for-each>
Or do something like:
<xsl:variable name="var" select="nodes1[somecondition] |
nodes2[othercondition]"/>
Hope this helps you.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|