Subject: Re: [xsl] behavior of boolean() when applied to an empty variable From: "Christopher R. Maden" <crism@xxxxxxxxx> Date: Mon, 11 Jul 2011 23:24:15 -0400 |
On 07/11/2011 10:31 PM, Wolfhart Totschnig wrote: > The boolean() function behaves in a way I don't understand when given > an empty variable as argument. I was hoping one of you could explain > it to me. > > Take the following two variables: > > <xsl:variable name="empty1"></xsl:variable> > > <xsl:variable name="empty2"> > <xsl:if test="false()"> > <xsl:value-of select=" 'some non-empty string' "/> > </xsl:if> > </xsl:variable> > > The value of both variables is the same, i.e. "", an empty string. Nope. I thought this was simpler than it actually is, but then I re-read it... then, finally, I found <URL: http://www.w3.org/TR/xslt#variable-values >: > If the variable-binding element does not have a select attribute and > has non-empty content (i.e. the variable-binding element has one or > more child nodes), then the content of the variable-binding element > specifies the value. Even though $empty2 evaluates to a no-op, it has non-empty content, and so the result is an empty result tree. That casts to a Boolean as true. > 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. So $empty1 does in fact equate to the empty string, which casts as false. ~Chris -- Chris Maden, text nerd <URL: http://crism.maden.org/ > bMankind are more disposed to suffer, while evils are sufferable than to right themselves by abolishing the forms to which they are accustomed.b b Thomas Jefferson
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] behavior of boolean() when ap, Wolfhart Totschnig | Thread | Re: [xsl] behavior of boolean() whe, Michael Kay |
[xsl] behavior of boolean() when ap, Wolfhart Totschnig | Date | Re: [xsl] Trying to simply reformat, Michel Hendriksen |
Month |