Juan Carlos Gonzalez wrote:
Hi:
I'm trying to accomplish the following in a dropdown
list box:
Accesories - Batteries
Accesories - Cables
Accesories - FireWire Products
Accesories - FireWire Products - Hubs
Accesories - FireWire Products - Interface
Accesories - Headsets
Digital
Digital - Cameras
...etc...
This is my xml file:
<root>
<cat id=1 name="Accesories">
<cat id=2 name="Batteries"/>
<cat id=2 name="Cables"/>
<cat id=3 name="FireWire Products">
<cat id=4 name="Hubs"/>
<cat id=5 name="Interface"/>
</cat>
<cat id=6 name="Headsets"/>
</cat>
<cat id=7 name="Digital">
<cat id=8 name="Cameras"/>
</cat>
</root>
Walk the ancestor axis:
<xsl:template match="cat">
<xsl:for-each select="(ancestor::cat)">
<xsl:sort select="."/> <!-- may be unnecessary -->
<xsl:value-of select="@name">
<xsl:if test="position()!=last()">
<xsl:text> - </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
(Untested, watchout for unwanted whitespace, LF etc.)
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list