[XSL] Optimisation

Jean-Luc Mathieu <[email protected]> Mon, 08 Jan 2007 17:31:21 +0100
Newsgroups gmane.text.xml.french.tech
Organization Virtualys
Message-ID <[email protected]>
Bonjour !

Soit deux noeuds dans une arborescence situés à des endroits 
complètement différents. Sous chacun de ces noeuds, le même nombre 
d'enfants existent. Je souhaite faire une itération sur le premier 
noeud, et, pour chaque enfant, afficher son contenu mais également le 
contenu de l'enfant situé à la même position sous le deuxième noeud. 
Voici un fragment de code XSL réalisant cela :

<xsl:for-each select="/root/noeud1/subnode">
  <xsl:variable name="curpos" select="position()"/>
  noeud 1 : <xsl:value-of select="." />, noeud 2 : <xsl:value-of 
select="/root/noeud2/subnode[position()=$curpos]" />
</xsl:for-each>

Ma question est la suivante : n'y aurait-il pas moyen de s'affranchir de 
l'utilisation d'une variable stockant la position, et d'utiliser une 
simple expression dans le deuxième <value-of> ? J'ai cherché du côté de 
l'utilisation de current(), mais je n'arrive pas à obtenir la position 
du noeud courant (i.e. "current()/position()" qui bien sûr ne fonctionne 
pas).

Quelqu'un a une idée ?
D'avance, merci !
Jean-Luc