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
|