File: Data.xml
<?xml version="1.0"?>
<parts-list>
<component component-id="1111111">
<name>Book</name>
<partref refid="1"/>
<partref refid="2"/>
<partref refid="3"/>
<partref refid="4"/>
<description>
<partref refid="3"/>.
</description>
</component>
<component component-id="5">
<name>name 1</name>
<partref refid="6"/>
<partref refid="7"/>
<description>
<partref refid="6"/> and a
<partref refid="7"/>.
</description>
</component>
<part part-id="6" supplier="4839">
<name>Pitter</name>
<description>
desc6
</description>
</part>
<part part-id="7" supplier="2983">
<name>Patter</name>
<description>
desc7
</description>
</part>
<part part-id="2" supplier="5910">
<name>Spanner</name>
<description>
You can't fix anything without one.
</description>
</part>
<supplier country="Great Britain" vendor-id="4839">
<name>A Inc.</name>
</supplier>
<supplier country="Germany" vendor-id="2983">
<name>D</name>
</supplier>
<supplier country="Great Britain" vendor-id="5910">
<name>U Ltd.</name>
</supplier>
</parts-list>
File: Transform.xslt
<?xml version="1.0"?>
<!-- id1.xsl -->
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>
Here is a test of the id() </xsl:text>
<xsl:text>function:
</xsl:text>
<xsl:for-each select="/parts-list/component">
<xsl:text>
 </xsl:text>
<xsl:value-of select="name"/>
<xsl:text> (component #</xsl:text>
<xsl:value-of select="@component-id"/>
<xsl:text>) uses these parts:
 </xsl:text>
<xsl:for-each select="id(partref/@refid)">
<xsl:value-of select="name"/>
<xsl:text>
 </xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Output:
Here is a test of the id() function:
Book (component #1111111) uses these parts:
name 1 (component #5) uses these parts:
|