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"?>
<!-- id2.xsl -->
<xsl:stylesheet version="1.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 in reverse:
</xsl:text>
<xsl:for-each select="/parts-list/part">
<xsl:text>
 </xsl:text>
<xsl:value-of select="name"/>
<xsl:text> (part #</xsl:text>
<xsl:value-of select="@part-id"/>
<xsl:text>) is used in these products:
 </xsl:text>
<xsl:for-each
select="/parts-list/component
[partref/@refid=current()/@part-id]">
<xsl:value-of select="name"/>
<xsl:if test="position() != last()">
<xsl:text>
 </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Output:
Here is a test of the id()
function in reverse:
(part #
) is used in these products:
|