| generate-id() 関数 | |
| 指定されたノードに固有の ID (XML 名) を生成します。ノードセットが指定されていない場合、generate-id() はコンテキストノードの ID を生成します。 | |
| 入力 | |
|
省略可能なノードセット。ノードセットが指定されていない場合、この関数はコンテキストノードの ID を生成します。ノードセットが空の場合、generate-id() は空の文字列を返します。 |
|
| 出力 | |
|
固有の ID、または空のノードセットが指定されている場合は空の文字列。generate-id() 関数については、次のことを知っておくことが重要です。
|
|
| 定義先 | |
|
XSLT 12.4 節「Miscellaneous Additional Functions」 |
|
| 例 | |
|
document('') 関数を使用してその独自の <xsl:text> ノードすべてにアクセスする単純なスタイルシートを次に示します。次に、generate-id() を使用してこれらの各ノードに固有の ID を生成し、generate-id() をもう一度呼び出して、指定されたノードに同じ ID を生成することを示します。スタイルシートは次のとおりです。
<?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>A test of the generate-id() function:</xsl:text>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
<xsl:for-each select="document('')//xsl:text">
<xsl:text>Node name: </xsl:text>
<xsl:value-of select="name()"/>
<xsl:text> - generated id: </xsl:text>
<xsl:value-of select="generate-id()"/>
<xsl:value-of select="$newline"/>
</xsl:for-each>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
<xsl:text>Now we'll try it again...</xsl:text>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$newline"/>
<xsl:for-each select="document('')//xsl:text">
<xsl:text>Node name: </xsl:text>
<xsl:value-of select="name()"/>
<xsl:text> - generated id: </xsl:text>
<xsl:value-of select="generate-id()"/>
<xsl:value-of select="$newline"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
スタイルシートからは、次のような結果が生成されます。 A test of the generate-id() function: Node name: xsl:text - generated id: NC Node name: xsl:text - generated id: N16 Node name: xsl:text - generated id: N22 Node name: xsl:text - generated id: N28 Node name: xsl:text - generated id: N38 Node name: xsl:text - generated id: N44 Node name: xsl:text - generated id: N4A Now we'll try it again... Node name: xsl:text - generated id: NC Node name: xsl:text - generated id: N16 Node name: xsl:text - generated id: N22 Node name: xsl:text - generated id: N28 Node name: xsl:text - generated id: N38 Node name: xsl:text - generated id: N44 Node name: xsl:text - generated id: N4A 毎回生成される ID は同じです。 |
|