Re: [xsl] Variable: true or false

Subject: Re: [xsl] Variable: true or false
From: David_N_Bertoni@xxxxxxxxx
Date: Fri, 6 Apr 2001 22:06:26 -0700
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="";
> 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.


 XSL-List info and archive:

Current Thread