not() 関数 |
パラメータの否定を返します。パラメータが既にブール値でない場合は、boolean() 関数で説明している規則を使用してブール値に変換されます。
入力
ブール値。より一般的には、ブール値を評価する XPath 式。
出力
入力パラメータが true である場合は false、入力パラメータが false である場合は true。
定義先
XPath 4.3 節「Boolean Functions」
例
not() 関数を示すために、boolean() 関数で使用したのと同じスタイルシートと XML ドキュメントを使用します。この XML ドキュメントは次のとおりです。
    <?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>
このドキュメントを次のスタイルシートを使用して処理します。スタイルシートでは、not() を使用してすべての 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>
結果は次のとおりです。
    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!
これらの結果は、boolean() 関数をテストしたときの結果と反対になります。