xsl-list
[Top] [All Lists]

Re: [xsl] behavior of boolean() when applied to an empty variable

2011-07-11 22:25:02
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/ >
“Mankind are more disposed to suffer, while evils are sufferable
 than to right themselves by abolishing the forms to which they
 are accustomed.” — Thomas Jefferson

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>