[XSL-LIST Mailing List Archive Home]
[xsl] counting preceding siblings in with-param
Subject: [xsl] counting preceding siblings in with-param|
From: John Sands <WonkoWatson@xxxxxxxxx>
Date: Wed, 23 Jul 2003 10:38:44 -0400
I have a template that works correctly like this:
<xsl:variable name="section-number" select="count(preceding-sibling::section) + 1" />
("section" elements are interspersed with other elements, but I need
to number them "Section 1, Section 2, etc.").
I need to move the template into its own file (to make it reusable) and
so I need to pass in the section-number as a parameter, instead of
calculating it inside the template:
<xsl:param name="section-number" />
How do I get the same number, "count(preceding-sibling::section) + 1",
from the calling template? This:
<xsl:apply-templates select="section | comment | instructions">
<xsl:with-param name="section-number" select="count(preceding-sibling::section) + 1" />
gives 1 every time. I suppose that's because the current node is not
the "section" node, but its parent, which has no preceding siblings
called "section"? But select="./count(preceding-sibling::section) + 1"
has the same problem. I'm worried that "with-param" is only calculated
once? (I'm using .NET 1.1).
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list