Fonction not() |
Renvoie la négation de son argument. Si l'argument n'est pas encore une valeur booléenne, elle est convertie en valeur booléenne à l'aide des règles décrites dans l'entrée de la fonction boolean().
Entrées
Une valeur booléenne ou plus généralement une expression XPath cconsidérée comme une valeur booléenne.
Sortie
La valeur false si le paramètre d'entrée est true ; la valeur true si le paramètre d'entrée est false.
Définie dans
XPath section 4.3, Fonctions booléennes.
Exemple
La feuille de style ainsi que le document XML utilisés pour montrer le fonctionnement de la fonction the boolean() ont également servi pour la fonction not(). Le document XML est le suivant :
    <?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>
La feuille de style suivante a permis de traiter le document utilisant la fonction not() pour inverser tous les appels de la fonction boolean() :
    <?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>
Les résultats sont les suivants :
    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!
Comme prévu, ces résultats correspondent exactement à l'opposé de ceux obtenus pour le test de la fonction boolean().