<xsl:key> | |
現在のドキュメントに対するインデックスを定義します。この要素は、name (このインデックスの名前を指定)、match (インデックスが作成されるノードを定義する XPath 式)、および use (インデックスの作成に使用するプロパティを定義する XPath 式) の 3 つの属性を使用して定義します。 | |
カテゴリ | |
トップレベル要素 |
|
必須の属性 | |
|
|
省略可能な属性 | |
なし。 |
|
コンテンツ | |
なし。<xsl:key> は空の要素です。 |
|
指定先 | |
<xsl:key> は、トップレベル要素であり、<xsl:stylesheet> の子としてのみ使用できます。 |
|
定義先 | |
XSLT 12.2 節「キー」 |
|
例 | |
次のスタイルシートでは、XML ドキュメントに対する 2 つの <xsl:key> の関係を定義しています。 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:key name="language-index" match="defn" use="@language"/> <xsl:key name="term-ids" match="term" use="@id"/> <xsl:param name="targetLanguage"/> <xsl:template match="/"> <xsl:apply-templates select="glossary"/> </xsl:template> <xsl:template match="glossary"> <html> <head> <title> <xsl:text>Glossary Listing: </xsl:text> <xsl:value-of select="key('language-index', $targetLanguage)[1]/preceding-sibling::term"/> <xsl:text> - </xsl:text> <xsl:value-of select="key('language-index', $targetLanguage)[last()]/preceding-sibling::term"/> </title> </head> <body> <h1> <xsl:text>Glossary Listing: </xsl:text> <xsl:value-of select="key('language-index', $targetLanguage)[1]/ancestor::glentry/term"/> <xsl:text> - </xsl:text> <xsl:value-of select="key('language-index', $targetLanguage)[last()]/ancestor::glentry/term"/> </h1> <xsl:for-each select="key('language-index', $targetLanguage)"> <xsl:apply-templates select="ancestor::glentry"/> </xsl:for-each> </body> </html> </xsl:template> ... </xsl:stylesheet> このスタイルシートでの <xsl:key> の関係の使用方法に関する詳細については、第 5 章 5.2.3 節を参照してください。 |