xsl-list
[Top] [All Lists]

[xsl] hierarchic counting in flat structures

2012-11-02 05:17:12
Hi everyone,

given a structure like

<H3>…</H3>
  <H4>…</H4>
  <H4>…</H4>

<H3>…</H3>
  <H4>…</H4>

<H3>…</H3>
  <H4>…</H4>
  <H4>…</H4>
  <H4>…</H4>


I would like to number the H4, re-starting on every H3.
So the output is something like this:

H3: 1
  H4: 1
  H4: 2
H3: 2
  H4: 1
H3: 3
  H4: 1
  H4: 2
  H4: 3

The following xsl does the job, but I wonder if this solution is really 
effective and elegant.

<xsl:template match="H4">
  <xsl:text>&#x0a;  H4: </xsl:text>
  <xsl:variable name="myH3" select="preceding-sibling::H3[1]" />
  <xsl:value-of select="1 + count(preceding-sibling::H4[preceding-
sibling::H3 = $myH3])" />
</xsl:template>

Are there better ways to solve my problem?

Best regards and thanks for brainstorming,
Norbert

--~------------------------------------------------------------------
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>