Subject: hierarchic counting in flat structures
From: Norbert Heidbrink <nh@xxxxxxxx>
Date: Fri, 2 Nov 2012 11:16:58 +0100
|
Hi everyone,
given a structure like
<H3>b&</H3>
<H4>b&</H4>
<H4>b&</H4>
<H3>b&</H3>
<H4>b&</H4>
<H3>b&</H3>
<H4>b&</H4>
<H4>b&</H4>
<H4>b&</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>
 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
|