| not() Function | |
| Returns the negation of its argument. If the argument is not a boolean value already, it is converted to a boolean value using the rules described in the boolean() function entry. | |
| Inputs | |
|
A boolean value, or more commonly, an XPath expression that evaluates to a boolean value. |
|
| Output | |
|
false if the input parameter is true; true if the input parameter is false. |
|
| Defined in | |
|
XPath section 4.3, Boolean Functions. |
|
| Example | |
|
To demonstrate the not() function, we'll use the same stylesheet and XML document we used for the boolean() function. Here's our XML document: <?xml version="1.0"?> <test> <p>This is a test XML document used by several of our sample stylesheets.</p> <question> <text>When completed, the Eiffel Tower was the tallest building in the world.</text> <true>Yes! The Eiffel Tower was the world's tallest building until 1932, when New York's Empire State Building opened. </true> <false>No, the Eiffel Tower was the world's tallest building for over 30 years.</false> </question> </test> We'll process this document with the following stylesheet, which uses the not() to negate all boolean() function calls:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="newline">
<xsl:text>
</xsl:text>
</xsl:variable>
<xsl:template match="/">
<xsl:value-of select="$newline"/>
<xsl:text>Tests of the not() function:</xsl:text>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean(true()))">
<xsl:text> "not(boolean(true()))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean(true()))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean(true))">
<xsl:text> "not(boolean(true))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean(true))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean('false'))">
<xsl:text> "not(boolean('false'))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean('false'))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean('7'))">
<xsl:text> "not(boolean('7'))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean('7'))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean(/true))">
<xsl:text> "not(boolean(/true))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean(/true))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$newline"/>
<xsl:choose>
<xsl:when test="not(boolean(//true))">
<xsl:text> "not(boolean(//true))" returned true!</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> "not(boolean(//true))" returned false!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Here are the results:
Tests of the not() function:
"not(boolean(true()))" returned false!
"not(boolean(true))" returned true!
"not(boolean('false'))" returned false!
"not(boolean('7'))" returned false!
"not(boolean(/true))" returned true!
"not(boolean(//true))" returned false!
As you'd expect, these results are the exact opposite of the results we got when we tested the boolean() function. |
|