Subject: Re: <xsl:variable> behavior From: Phil Lanch <phil@xxxxxxxxxxxxxxx> Date: Thu, 11 Nov 1999 12:19:01 +0000 |
"Clark C. Evans" wrote: > > <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 The value of the variable "is a result tree fragment equivalent to a node-set containing just a single root node having as children the sequence of nodes produced by instantiating the template" [11.2]. I.e. $x contains 1 node (which happens to be empty, because your template produces no nodes), so it converts to true. That one is a bit counter-intuitive, I think. > <xsl:template match="/"> > <xsl:variable name="x"></xsl:variable> > <xsl:if test="$x">x</xsl:if> > </xsl:template> > > Does not (as expected). "If the variable-binding element has empty content and does not have a select attribute, then the value of the variable is an empty string" [11.2]. And an empty string converts to false. -- cheers phil XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
<xsl:variable> behavior, Clark C. Evans | Thread | Re: <xsl:variable> behavior, G. Ken Holman |
illegal character data, Linda van den Brink | Date | RE: <xsl:variable> behavior, Kay Michael |
Month |