XSLT <xsl:key>要素
定義と使用方法
<xsl:key>要素はトップレベルの要素であり、名前付きのキー(XMLドキュメント内で指定されたエレメントに割り当てられた名前と値のペア)を宣言できます。
このキーはkey()関数を通じてスタイルシート内で使用され、複雑なXMLドキュメント内で割り当てられた要素に効果的にアクセスするのに役立ちます。
注釈:キーはユニークでなくても構いません!
構文
<xsl:key 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>
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>