This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
XPath for number of preceding nodes sharing an ancestor
- To: XSL mailing list <xsl-list at lists dot mulberrytech dot com>
- Subject: [xsl] XPath for number of preceding nodes sharing an ancestor
- From: Michael Strasser <M dot Strasser at myrealbox dot com>
- Date: Wed, 16 May 2001 09:24:30 +1000
- Organization: StrassCom Pty Ltd
- Reply-To: xsl-list at lists dot mulberrytech dot com
I want to count the number of preceding nodes that share an ancestor node.
I have a document like this:
<?xml version="1.0"?>
<module>
<inputform>
<title>
<input>
<!-- etc. -->
</input>
</title>
<introduction>
<input>
<!-- etc. -->
</input>
</introduction>
</inputform>
<!-- More inputform and other elements. -->
</module>
When each input element is processed I need a unique number within the
inputform node.
My XSL includes:
<xsl:template match="input">
<xsl:variable name="input-count"
select="count(preceding::input[ancestor::inputform =
current()/ancestor::inputform]) + 1"/>
<!-- Do stuff with $input-count. -->
</xsl:template>
This works but the XPath in the select attribute of xsl:variable feels a
bit clumsy. Is there a better way or am I feeling worried because it is
rather wordy?
Thanks in advance.
--
Michael Strasser
Brisbane, Australia
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list