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