次のxmlドキュメントが与えられた場合...
<ws>
<series year="2005" mvp="Jermaine Dye">
<team name="Chicago White Sox" wins="4" />
<team name="Houston Astros" wins="0" />
</series>
<series year="2004" mvp="Manny Ramirez">
<team name="Boston Red Sox" wins="4" />
<team name="St. Louis Cardinals" wins="0" />
</series>
</ws>
各シリーズの最初のチームの名前属性を取得するためのキーを作成しました。次のように、各シリーズの各名前をループして一覧表示しようとしています。現在、結果が返されていません。参照値の何が問題なのかわかりません...
<xsl:key name="winners" match="team[1]" use="@name" />
<xsl:template match="/">
<xsl:for-each select="ws/series">
<xsl:value-of select="key('winners', @name)" />
</xsl:for-each>
</xsl:template>
期待される出力は...
Chicago White Sox (the first team from series 1)
Boston Red Sox (the first team from series 2)
私が提供した xml データには、実際には数百あるのに 2 つの系列要素しか含まれていません。キーは、変換プロセスを高速化するために使用され、他のキーと連携して結果ドキュメントを生成します。