I have a template that works correctly like this:
<xsl:template match="section">
<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:template match="section">
<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" />
</xsl:apply-templates>
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).
Thanks,
John Sands
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list