This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Variable: true or false
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Variable: true or false
- From: David_N_Bertoni at lotus dot com
- Date: Fri, 6 Apr 2001 22:06:26 -0700
- Reply-To: xsl-list at lists dot mulberrytech dot com
Tom Gilbert wrote:
> I do the transform on this XSL and get "true". I would have expected
> "false". Thought the boolean of an empty object would always be false.
>
> Using Xerces 1.4 and Xalan 1.1
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:variable name="selectUser"/>
> <xsl:template match="/">
> <xsl:choose>
> <xsl:when test="$selectUser">
> true
> </xsl:when>
> <xsl:otherwise>
> false
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
> </xsl:stylesheet>
You are creating a result tree fragment, which always has a conceptual root
node. Thus, the boolean value of a result tree fragment is always true.
It know it seems strange, but there you have it!
If you want to create a variable that contains a node-set, you have to use
the select attribute. For example:
<xsl:variable name=selectUser" select="/.."/>
would return an empty node-set.
For the gory details, you can see section 11.1 of the XSLT recommendation.
Dave
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list