Nic Miloslav     Example 40    KEYWORDS      EXAMPLES      AUTHORS     

In Stylesheet 1 strings are arguments of boolean() function. A string is true if and only if its length is non-zero. In Stylesheet 2 is text transformed into numbers and then subjected to boolean() function. Stylesheet 3 compares "0" as a string and as a number.Stylesheet 4 uses node-sets as arguments for boolean() function.


     XML     HOME     XSL 1     XSL 2     XSL 3     XSL 4      
<xslTutorial >
<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text></text>
<text>false</text>
</xslTutorial>

     XSL 1     HOME     XML     HTML 1     OUTPUT 1     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<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>
</xsl:stylesheet>

     HTML 1     HOME     XML     XSL 1     OUTPUT 1     
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE border="1">
<TR>
<TH>text</TH>
<TH>boolean</TH></TR>
<TR>
<TD>124 </TD>
<TD>true</TD></TR>
<TR>
<TD>AB234 </TD>
<TD>true</TD></TR>
<TR>
<TD>-16 </TD>
<TD>true</TD></TR>
<TR>
<TD>0 </TD>
<TD>true</TD></TR>
<TR>
<TD> </TD>
<TD>false</TD></TR>
<TR>
<TD>false </TD>
<TD>true</TD></TR></TABLE> </BODY> </HTML>

     OUTPUT 1     HOME     XML     XSL 1     HTML 1     
textboolean
124 true
AB234 true
-16 true
0 true
false
false true

     XSL 2     HOME     XML     HTML 2     OUTPUT 2     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<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>
</xsl:stylesheet>

     HTML 2     HOME     XML     XSL 2     OUTPUT 2     
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE border="1">
<TR>
<TH>text</TH>
<TH>number</TH>
<TH>boolean</TH></TR>
<TR>
<TD>124 </TD>
<TD>124 </TD>
<TD>true</TD></TR>
<TR>
<TD>AB234 </TD>
<TD>NaN </TD>
<TD>false</TD></TR>
<TR>
<TD>-16 </TD>
<TD>-16 </TD>
<TD>true</TD></TR>
<TR>
<TD>0 </TD>
<TD>0 </TD>
<TD>false</TD></TR>
<TR>
<TD> </TD>
<TD>NaN </TD>
<TD>false</TD></TR>
<TR>
<TD>false </TD>
<TD>NaN </TD>
<TD>false</TD></TR></TABLE> </BODY> </HTML>

     OUTPUT 2     HOME     XML     XSL 2     HTML 2     
textnumberboolean
124 124 true
AB234 NaN false
-16 -16 true
0 0 false
NaN false
false NaN false

     XSL 3     HOME     XML     HTML 3     OUTPUT 3     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<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>
</xsl:stylesheet>

     HTML 3     HOME     XML     XSL 3     OUTPUT 3     
<HTML>
<HEAD> </HEAD>
<BODY>
<P>The boolean value of "0" is
<B>true</B> if "0" is a string, but
<B>false</B> if "0" is a number.</P> </BODY> </HTML>

     OUTPUT 3     HOME     XML     XSL 3     HTML 3     

The boolean value of "0" is true if "0" is a string, but false if "0" is a number.


     XSL 4     HOME     XML     HTML 4     OUTPUT 4     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<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>
</xsl:stylesheet>

     HTML 4     HOME     XML     XSL 4     OUTPUT 4     
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE border="1">
<TR>
<TH>node-set</TH>
<TH>boolean</TH></TR>
<TR>
<TD>/</TD>
<TD>true</TD></TR>
<TR>
<TD>//text</TD>
<TD>true</TD></TR>
<TR>
<TD>//number</TD>
<TD>false</TD></TR>
<TR>
<TD>//text[23]</TD>
<TD>false</TD></TR></TABLE> </BODY> </HTML>

     OUTPUT 4     HOME     XML     XSL 4     HTML 4     
node-setboolean
/true
//texttrue
//numberfalse
//text[23]false