not()-Funktion |
Diese Funktion liefert die Negation ihres Arguments. Ist das Argument kein Boolescher Wert, wird es in einen Booleschen Wert konvertiert, und zwar gemäß der Regeln, die in der Beschreibung der Funktion boolean() erläutert werden.
Eingaben
Ein Boolescher Wert oder, allgemeiner gesagt, ein XPath-Ausdruck, der einen Booleschen Wert ergibt.
Ausgabe
false, wenn der Eingabeparameter true ist und true, wenn der Eingabeparameter false ist.
Definition
XPath-Abschnitt 4.3, Boolesche Funktionen
Beispiel
Um die Funktion not() zu veranschaulichen, werden dasselbe Stylesheet und dasselbe XML-Dokument wie in der Beschreibung der Funktion boolean() verwendet. 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>
Dieses Dokument wird mit dem folgenden Stylesheet verarbeitet, das die Funktion not() dazu verwendet, alle boolean()-Funktionsaufrufe umzukehren:
    <?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>
Hier die Ergebnisse:
    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!
Wie erwartet, sind diese Ergebnisse das genau Gegenteil der Ergebnisse, die beim Testen der Funktion boolean() entstanden sind.