boolean()-Funktion |
Diese Funktion konvertiert ihr Argument in einen Booleschen Wert.
Eingaben
Ein Objekt. Das Objekt wird in einen Booleschen Wert konvertiert. Wie diese Konvertierung für die verschiedenen Datentypen vollzogen wird, erfahren Sie im nächsten Abschnitt.
Ausgabe
Der dem Eingabeobjekt entsprechende Boolesche Wert. Objekte werden wie folgt in Boolesche Werte konvertiert: Eine Zahl ist nur dann true, wenn sie nicht den Wert Null, negativ Null oder NaN (Not a Number – keine Zahl) besitzt. Eine Knotenmenge ist nur dann true, wenn sie nicht leer ist. Ein String ist nur dann true, wenn seine Länge größer als null ist. Alle anderen Datentypen werden in einer für diese Datentypen spezifischen Weise konvertiert.
Definition
XPath-Abschnitt 4.3, Boolesche Funktionen
Beispiel
Das folgende Beispiel demonstriert die Ergebnisse, wenn die Funktion boolean() auf eine Vielzahl verschiedener Argumenttypen angewendet wird. Hier das XML-Dokument:
    <?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>
Das Dokument wird mit dem folgenden Stylesheet verarbeitet:
    <?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>
Hier die Ergebnisse:
    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!