name() 関数 |
ノードの修飾名を返します。修飾名には、名前空間の適切な接頭辞が含まれます。XPath には、接頭辞ではなく名前空間 URI の詳細について、namespace-uri() 関数が用意されています。
入力
省略可能なノードセット。ノードセットを省略した場合、name() 関数はコンテキストノードをその唯一のメンバーとしてノードセットを作成します。
出力
ノードの拡張名。パラメータノードセットが空の場合、またはノードセットの最初のノードに拡張名がない場合は、空の文字列が返されます。
定義先
XPath 4.1 節「ノードセット関数」
例
name() 関数を確認するために使用する 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>
このスタイルシートを使用して、XML ドキュメントの各ノードに対して name() 関数の値を出力します。
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:months="Lookup table for month names">

      <months:name sequence="12">December</months:name>
      <months:name sequence="01">January</months:name>
      <months:name sequence="02">February</months:name>
      <months:name sequence="03">March</months:name>
      <months:name sequence="04">April</months:name>
      <months:name sequence="05">May</months:name>
      <months:name sequence="06">June</months:name>
      <months:name sequence="07">July</months:name>
      <months:name sequence="08">August</months:name>
      <months:name sequence="09">September</months:name>
      <months:name sequence="10">October</months:name>
      <months:name sequence="11">November</months:name>

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:text>A test of the name() function:</xsl:text>

        <xsl:value-of select="$newline"/>
        <xsl:value-of select="$newline"/>
        <xsl:for-each select="document('')//*">
          <xsl:text>name: </xsl:text>
          <xsl:value-of select="name()"/>
          <xsl:value-of select="$newline"/>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
このスタイルシートを使用して XML ドキュメントを変換した結果は次のとおりです。
    A test of the name() function:

    name: xsl:stylesheet
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: months:name
    name: xsl:output
    name: xsl:variable
    name: xsl:text
    name: xsl:template
    name: xsl:value-of
    name: xsl:text
    name: xsl:value-of
    name: xsl:value-of
    name: xsl:for-each
    name: xsl:text
    name: xsl:value-of
    name: xsl:value-of