I believed that the position() function should give me the position number
of the node in the node set. But it appears to not being the case. I don't
understand the result of this function (I use saxon to process my xsl
transformation). It numbers my row nodes 2 by 2.
Can somebody explain me what I missed ?
Here are my test files :
test.xml
--------
<?xml version="1.0" encoding="iso-8859-1"?>
<document>
<table>
<row/>
<row/>
<row/>
<row/>
<row/>
</table>
</document>
test.xsl
--------
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
indent="yes"/>
<xsl:template match="/">
<result>
<xsl:apply-templates/>
</result>
</xsl:template>
<xsl:template match="row">
<row-numbering>
<xsl:text>Row number : </xsl:text>
<xsl:number/>
<xsl:text> ---------- Row position : </xsl:text>
<xsl:value-of select="position()"/>
</row-numbering>
</xsl:template>
</xsl:stylesheet>
result.xml
----------
<?xml version="1.0" encoding="ISO-8859-1"?>
<result>
<row-numbering>Row number : 1 ---------- Row position :
2</row-numbering>
<row-numbering>Row number : 2 ---------- Row position :
4</row-numbering>
<row-numbering>Row number : 3 ---------- Row position :
6</row-numbering>
<row-numbering>Row number : 4 ---------- Row position :
8</row-numbering>
<row-numbering>Row number : 5 ---------- Row position :
10</row-numbering>
</result>