<xslTutorial creator="nicmila@idoox.com">
<index keywords='boolean() number() text()'/>

<description>In <stylesheet id='id2'/> strings are arguments of boolean() function. A string is true if and only if its length is non-zero. In <stylesheet id='id3'/> is text transformed into numbers and then subjected to boolean() function. <stylesheet id='id4'/> compares "0" as a string and as a number.<stylesheet id='id5'/> uses node-sets as arguments for boolean() function.
</description>

<xmlSource id="id1">
<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text></text>
<text>false</text>
</xmlSource>

<attValues>
<value match=''></value>
</attValues>

<xslStylesheet id="id2">
<xsl:template match="/">
<TABLE border="1">
<TR><TH>text</TH><TH>boolean</TH></TR>
<xsl:for-each select="//text">
<TR>
<TD><xsl:value-of select="."/>
<xsl:text> </xsl:text>
</TD>
<TD><xsl:value-of select="boolean(text())"/></TD>
</TR>
</xsl:for-each>
</TABLE>

</xsl:template>
</xslStylesheet>

<xslStylesheet id="id3">
<xsl:template match="/">
<TABLE border="1">
<TR><TH>text</TH><TH>number</TH><TH>boolean</TH></TR>
<xsl:for-each select="//text">
<TR>
<TD><xsl:value-of select="."/>
<xsl:text> </xsl:text>
</TD>
<TD><xsl:value-of select="number(text())"/>
<xsl:text> </xsl:text>
</TD>
<TD><xsl:value-of select="boolean(number(text()))"/></TD>
</TR>
</xsl:for-each>
</TABLE>

</xsl:template>
</xslStylesheet>

<xslStylesheet id="id4">
<xsl:template match="/">
<P>
<xsl:text>The boolean value of "0" is </xsl:text>
<B><xsl:value-of select="boolean(//text[text()='0'])"/></B>
<xsl:text> if "0" is a string, but </xsl:text>
<B><xsl:value-of select="boolean(number((//text[text()='0'])))"/></B>
<xsl:text> if "0" is a number.</xsl:text>
</P> 

</xsl:template>
</xslStylesheet>

<xslStylesheet id="id5">
<xsl:template match="/">
<TABLE border="1">
<TR><TH>node-set</TH><TH>boolean</TH></TR>
<TR><TD>
<xsl:text>/</xsl:text>
</TD><TD>
<xsl:value-of select="boolean(/)"/>
</TD></TR>
<TR><TD>
<xsl:text>//text</xsl:text>
</TD><TD>
<xsl:value-of select="boolean(//text)"/>
</TD></TR>
<TR><TD>
<xsl:text>//number</xsl:text>
</TD><TD>
<xsl:value-of select="boolean(//number)"/>
</TD></TR>
<TR><TD>
<xsl:text>//text[23]</xsl:text>
</TD><TD>
<xsl:value-of select="boolean(//text[23])"/>
</TD></TR>
</TABLE>

</xsl:template>
</xslStylesheet>
</xslTutorial>