select down to a certain level and its attribute
File: Data.xml
<shirts>
<colors>
<color cid="c1">yellow</color>
<color cid="c2">black</color>
<color cid="c3">red</color>
<color cid="c4">blue</color>
<color cid="c5">purple</color>
<color cid="c6">white</color>
<color cid="c7">orange</color>
<color cid="c7">green</color>
</colors>
<shirt colorCode="c4">item 1</shirt>
<shirt colorCode="c1">item 2</shirt>
<shirt colorCode="c6">item 3</shirt>
</shirts>
File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text" />
<xsl:template match="shirt">
<xsl:variable name="shirtColorCode" select="@colorCode" />
<xsl:value-of select="/shirts/colors/color[@cid = $shirtColorCode]" />
<xsl:text> </xsl:text>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="color" />
</xsl:stylesheet>
Output:
blue item 1
yellow item 2
white item 3
Related examples in the same category