key() function returns a sequence of nodes which can be further queried using standard XPath expressions.
|
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" use="@id"/> <xsl:template match="/aaa"> <xsl:apply-templates select="key('kkk','b')/ccc/ddd"/> </xsl:template> <xsl:template match="ddd"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> |
|
|
XML
<aaa> <bbb id="a"> <ccc> <ddd>1</ddd> </ccc> </bbb> <fff> <bbb id="b"> <ccc> <ddd>2</ddd> <ddd>3</ddd> </ccc> </bbb> </fff> </aaa> |
Output
<ddd>2</ddd> <ddd>3</ddd> |
| Previous chapter: | Namespaces |
| Next chapter: | Recursions |
| Previous page: | Keys usage for cross-referencing |
| Next page: | Key element contents instead of use attribute |