XSLT <xsl:key>要素
完全なXSLT要素リファレンス
定義と使用法
<xsl:key> 要素はトップレベル要素(top-level element)であり、名前付きキー(すなわち、XML ドキュメント内の指定された要素に割り当てられる名前と値のペア)を宣言します。このキーは、key() 関数を使用してスタイルシート内で使用され、複雑な XML ドキュメント内の割り当てられた要素に効率的にアクセスするのに役立ちます。
注意:キーは一意である必要はありません。
構文
<xsl:key
name="name"
match="pattern"
use="expression"/>
name="name"
match="pattern"
use="expression"/>
属性
| 属性 | 值 | 説明 |
|---|---|---|
| name | name | 必須。キーの名前を指定します。 |
| match | pattern | 必須。キーが適用されるノードを定義します。 |
| use | expression | 必須。各ノードのキーの値として使用する式を指定します。 |
例 1
「persons.xml」という名前の XML ファイルがあるとします:
<persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</persons>
<person name="Tarzan" id="050676"/>
<person name="Donald" id="070754"/>
<person name="Dolly" id="231256"/>
</persons>
XSL ファイル内でキーを次のように定義できます:
<xsl:key name="preg" match="person" use="@id"/>
id="050676" の person を見つけるには、次のコード(XSL ファイル内)を使用してください:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="preg" match="person" use="@id"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="key('preg','050676')">
<p>
Id: <xsl:value-of select="@id"/><br />
Name: <xsl:value-of select="@name"/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="preg" match="person" use="@id"/>
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="key('preg','050676')">
<p>
Id: <xsl:value-of select="@id"/><br />
Name: <xsl:value-of select="@name"/>
</p>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
完全なXSLT要素リファレンス その他の拡張機能