xsl-list
[Top] [All Lists]

Count preceeding sibling but in different element

2005-08-04 23:12:50
I am wanting to count all preceeding sibling (steps) but they could be
in different elements
 
<element1>
  <element2>
     <step/>
     <step/>
  </element2>
  <element3>
     <step/>
  </element3>
  <element4>
     <step/>
     <step/>
     <step/>
  </element4>
</element1>
 
The output I am after is

<element1>
  <element2>
     <step number="1" />
     <step number="2"/>
  </element2>
  <element3>
     <step number="3"/>
  </element3>
  <element4>
     <step number="4"/>
     <step number="5"/>
     <step number="6"/>
  </element4>
</element1>
 
I have have the following which works fine on every step within an
element, i.e.
 
  <element3>
     <step/>
  </element3>
  <element4>
     <step/>
     <step/>
     <step/>
  </element4>
 
Would become 
 
  <element3>
     <step number="1"/>
  </element3>
  <element4>
     <step number="1"/>
     <step number="2"/>
     <step number="3"/>
  </element4>
 
<xsl:template match="step">
 <xsl:copy>
  <xsl:copy-of select="@*" />
  <!-- Calculate the step number -->
  <xsl:attribute name="number">
   <xsl:value-of select="count( preceding-sibling::step ) + 1" />
  </xsl:attribute>
  <xsl:apply-templates />
 </xsl:copy>
</xsl:template>
 
Can anyone help?
Thanks
________________________________
Taco Fleur - E-commerce Development Manager
Shelco Searches & Services
An Authorised ASIC Information Broker
www.shelco.com.au <blocked::http://www.shelco.com.au> 
Ph: + 61 7 3236 2605


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



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