[xsl] Count the node from zero instead of one.

Subject: [xsl] Count the node from zero instead of one.
From: Rashi Bhardwaj <rashi.bhardwaj@xxxxxxxxx>
Date: Fri, 26 Nov 2010 12:38:53 +0530
HI All,

I m counting the node position from this logic in the below sample xml

xml:

<test>
<a>
<b name ='1'></b>
<b name ='2'></b>
<b name ='3'>
<c>aaa</c>
</b>
<b name ='4'>
	<c>bbb</c>
	<c>ccc</c>
</b>
<b name ='4'>
	<c>dddd</c>
	<c>eeee</c>
</b>
</a>
<a>
<b name ='1'></b>
<b name ='2'>
<c>fffff</c>
</b>
<b name ='3'></b>
<b name ='4'>
	<c>gggg</c>
</b>
</a>
</test>

<xsl:template name="CountNode">
		<xsl:param name="node"
select="//b[c[preceding-sibling::c]][not(@name
=preceding::b[child::c]/@name)]/@name"/>
		<xsl:for-each select="$node">
			<xsl:element name="position">
				<xsl:number count="*"/>
				<xsl:text>,</xsl:text>
			</xsl:element>
			<xsl:if test="position()!=last()"/>
		</xsl:for-each>
	</xsl:template>

it gives the result 3,4,2,....I want it should count from zero instead
of one and the result shld be 2,3,1.or it can print the result by
subracing 1 from it like 3-1=2.

Please suggest some thing...

Thanks....
Rashi

Current Thread