Si avec le document XML suivant :
<records> <record> truc </record> <record> bidule </record> <record> chouette </record> </records>
On souhaite obtenir le tableau suivant :
1 | truc 2 | bidule 3 | chouette
et bien on aura le template suivant :
<xsl:template match="record"> <xsl:value-of select="count(./preceding-sibling::record) + 1" /> <xsl:text> | </xsl:text> <xsl:value-of select="text()" /> </xsl:template>
biensûr on aurait pu également l'écrire comme ceci :
<xsl:template match="records"> <xsl:for-each select="record"> <xsl:value-of select="position()" /> <xsl:text> | </xsl:text> <xsl:value-of select="text()" /> </xsl:for-each> </xsl:template>
L'utilisation de la fonction position() à la place de count(./preceding-sibling::record) + 1n'aurait pas donné le même résultat.