number() 関数 |
パラメータを数値に変換します。
入力
オブジェクト。オブジェクトは、後のサブセクションで説明するように数値に変換されます。
出力
数値。オブジェクトは次のように数値に変換されます。 パラメータがブール値の場合、値 true は数値 1 に変換され、値 false は数値 0 に変換されます。 パラメータがノードセットの場合、ノードセットは string() 関数に渡されたかのように文字列に変換され、その文字列は他の文字列と同じように数値に変換されます。string() 関数は、ノードセットの最初のノードの文字列値を返します。 パラメータが文字列の場合は、次のように変換されます。 文字列が省略可能な空白スペースで構成されていて、省略可能なマイナス記号 (-)、数値、および空白スペースが順に続く場合、文字列で表される数値に最も近い浮動小数点値に変換されます。IEEE 754 標準では、round-to-nearest 規則を定義しています。詳細については、この標準を参照してください。 その他の文字列は、NaN (数値ではない値) に変換されます。 パラメータが他のタイプである場合は、そのタイプに応じた方法で数値に変換されます。サポートされる他のタイプと、それらが数値に変換される方法については、XSLT プロセッサのマニュアルを参照してください。
定義先
XPath 4.4 節「Number Functions」
例
number() 関数をテストするために使用する XML ドキュメントを次に示します。
    <?xml version="1.0"?>
    <report>
      <title>Miles Flown in 2001</title>
      <month sequence="01">
        <miles-flown>12379</miles-flown>
        <miles-earned>35215</miles-earned>
      </month>
      <month sequence="02">
        <miles-flown>32857</miles-flown>
        <miles-earned>92731</miles-earned>
      </month>
      <month sequence="03">
        <miles-flown>19920</miles-flown>
        <miles-earned>76725</miles-earned>
      </month>
      <month sequence="04">
        <miles-flown>18903</miles-flown>
        <miles-earned>31781</miles-earned>
      </month>
    </report>
さまざまなパラメータを使用して number() 関数をテストします。
    <?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 number() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   number(true())=</xsl:text>
        <xsl:value-of select="number(true())"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   number(false())=</xsl:text>
        <xsl:value-of select="number(false())"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   number(/report/month[2]/miles-flown)=</xsl:text>
        <xsl:value-of select="number(/report/month[2]/miles-flown)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   number(//miles-flown)=</xsl:text>
        <xsl:value-of select="number(//miles-flown)"/>
        <xsl:value-of select="$newline"/>
        <xsl:text>   number(/report/title)=</xsl:text>
        <xsl:value-of select="number(/report/title)"/>
      </xsl:template>

    </xsl:stylesheet>
スタイルシートの出力は次のとおりです。
    Tests of the number() function:

       number(true())=1
       number(false())=0
       number(/report/month[2]/miles-flown)=32857
       number(//miles-flown)=12379
       number(/report/title)=NaN