xsl-list
[Top] [All Lists]

Re: Node Concatenation

2002-11-04 13:45:31
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



<Prev in Thread] Current Thread [Next in Thread>