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>