In XSLT 1.0 only way how to specify values of the key was via use attribute. In XSLT 2.0 the use attribute can be replaced by the content of the xsl:key element.
|
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <xsl:key name="kkk" match="bbb"> <xsl:value-of select="@x"/> </xsl:key> <xsl:template match="/aaa"> <xsl:apply-templates select="ccc/ddd"/> </xsl:template> <xsl:template match="ddd"> <uuu> <xsl:apply-templates select="key('kkk',@y)"/> </uuu> </xsl:template> </xsl:stylesheet> |
|
|
XML
<aaa> <bbb x="a">X</bbb> <bbb x="b">Y</bbb> <bbb x="c">Z</bbb> <ccc> <ddd y="b"/> <ddd y="c"/> <ddd y="a"/> </ccc> </aaa> |
Output
<uuu>Y</uuu> <uuu>Z</uuu> <uuu>X</uuu> |
| Previous chapter: | Namespaces |
| Next chapter: | Recursions |
| Previous page: | key as the first step of an XPath expression |
| Next page: | Several keys elements of the same name |