File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data> <text>124</text> <text>1 2 4</text> <text>-16</text> <text>- 16</text> <text>125.258</text> <text>125.</text> <text>ASDF</text> <text>A123</text> <text>true</text> <text>false()</text> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <TABLE border="1"> <TR> <td>text</TH> <td>number</TH> </TR> <xsl:for-each select="//text[text() = 'true' or text() = 'false()']"> <TR> <TD> <xsl:value-of select="."/> </TD> <TD> <xsl:value-of select="number()"/> </TD> </TR> </xsl:for-each> </TABLE> <Paragraph> <xsl:text>but:</xsl:text> </Paragraph> <TABLE border="1"> <TR> <td>function</TH> <td>number</TH> </TR> <TR> <TD>true()</TD> <TD> <xsl:value-of select="number(true())"/> </TD> </TR> <TR> <TD>false()</TD> <TD> <xsl:value-of select="number(false())"/> </TD> </TR> <TR> <TD>5>7</TD> <TD> <xsl:value-of select="number(5 > 7)"/> </TD> </TR> <TR> <TD>5<7</TD> <TD> <xsl:value-of select="number(5<7)"/> </TD> </TR> </TABLE> </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><TABLE border="1"><TR><td>text</TH><td>number</TH></TR><TR><TD>true</TD><TD>NaN</TD></TR><TR><TD>false()</TD><TD>NaN</TD></TR></TABLE><Paragraph>but:</Paragraph><TABLE border="1"><TR><td>function</TH><td>number</TH></TR><TR><TD>true()</TD><TD>1</TD></TR><TR><TD>false()</TD><TD>0</TD></TR><TR><TD>5>7</TD><TD>0</TD></TR><TR><TD>5<7</TD><TD>1</TD></TR></TABLE>