| 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 |
|---|
| text | boolean |
|---|---|
| 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 |
|---|
| text | number | boolean |
|---|---|---|
| 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-set | boolean |
|---|---|
| / | true |
| //text | true |
| //number | false |
| //text[23] | false |