boolean() Function |
Converts its argument to a boolean value.
Inputs
An object. The object is converted to a boolean value. This conversion is described in the following subsection.
Output
The boolean value corresponding to the input object. Objects are converted to boolean values as follows:

  A number is true if and only if it is not zero, negative zero, or NaN (not a number).
  A node-set is true if and only if it is not empty.
  A string is true if and only if its length is greater than zero.
  All other datatypes are converted in a way specific to those datatypes.

Defined in
XPath section 4.3, Boolean Functions.
Example
The following example demonstrates the results of invoking the boolean() function against a variety of argument types. 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:
    <?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 boolean() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean(true())">
            <xsl:text>   "boolean(true())"   returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean(true())"   returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>

        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean(true)">

            <xsl:text>   "boolean(true)"     returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean(true)"     returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>

        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean('false')">
            <xsl:text>   "boolean('false')"  returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean('false')"  returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>

        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean('7')">
            <xsl:text>   "boolean('7')"      returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean('7')"      returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>

        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean(/true)">
            <xsl:text>   "boolean(/true)"    returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean(/true)"    returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>

        <xsl:value-of select="$newline"/>
        <xsl:choose>
          <xsl:when test="boolean(//true)">
            <xsl:text>   "boolean(//true)"   returned true!</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>   "boolean(//true)"   returned false!</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:template>

    </xsl:stylesheet>
Here are the results:
    Tests of the boolean() function:

       "boolean(true())"   returned true!
       "boolean(true)"     returned false!
       "boolean('false')"  returned true!
       "boolean('7')"      returned true!
       "boolean(/true)"    returned false!
       "boolean(//true)"   returned true!
See Section 4.2.1.2 in Chapter 4 for more examples and information.