RE: <xsl:variable> behavior

Subject: RE: <xsl:variable> behavior
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Thu, 11 Nov 1999 12:34:03 -0000
Weird, but correct. This language is full of surprises. If xsl:variable
(without select) has children, the value is a result tree fragment,
regardless of the fact that the children produce no output; and in this case
the equivalent node set to the result tree fragment is a root node with no
children of its own; the test xsl:if test=$x tests whether the equivalent
node set contains any nodes, which it does, because it contains a root node
with no children.

Mike Kay
> 
> <xsl:template match="/">
>   <xsl:variable name="x">
>     <xsl:choose>
>       <xsl:when test="false()">X</xsl:when>
>     </xsl:choose>
>   </xsl:variable>
>   <xsl:if test="$x">x</xsl:if>
> </xsl:template>  
> 
> This (unexpectedly) prints "x" using jclark's xt while
> 
> <xsl:template match="/">
>   <xsl:variable name="x"></xsl:variable>
>   <xsl:if test="$x">x</xsl:if>
> </xsl:template>  
> 
> Does not (as expected). 
> 
> Thoughts?
> 
> Clark
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread