xsl-list
[Top] [All Lists]

Curious result of the position() function

2004-07-29 01:14:44

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>




<Prev in Thread] Current Thread [Next in Thread>