Salut à tous,

c´est encore moi avec un nouveau problème: J´aimerais savoir comment récupérer la position (avec la fonction position() ou autrement) d´un noeud enfant du noeud courant, sachant que ce noeud enfant a lui aussi été un noeud courant. Je m´explique par cette exemple de classification. Soit le fichier XML suivant:

<?xml version="1.0"?>
<Root>
<!-- Definition de la classe Root et de ses sous élements qui sont aussi des classes-->
<Classe code="A88"><nom>Classe Root</nom>
<SousClasse code="A88.0"/>
<SousClasse code="A88.1"/>
</Classe>

<!--Définition des sous-classes-->
<Classe code="A88.0"><nom>Classe AB</nom>
<SuperClasse code="A88"/>
<SousClasse code="A88.01"/>
</Classe>

<Classe code="A88.1"><nom>Classe AC</nom>
<SuperClasse code="A88"/>
<SousClasse code="A88.11"/>
</Classe>
</Root>

Cette Classification n´est qu´un extrait. Le doc contient la définition de bien d´autres classes qui ont des super classes ou des sous-classes (représentez-vous un arbre monohierarchique).

Supposons qu´avec du XSLT, j´ai un template où je me trouve au noeud courant Root/Classe. J´aimerais pour chaque classe récupérer sa position ainsi que la position dans l´arbre (ou de la structure xml) de sa SuperClasse. J´aimerais donc avec une sortie telle:
A88; position 1;
A88.0; position 2; position 1
A88.1; position 3; position 1
(code de la classe; position courante de la classe; position courante de la Super-Classe)

Pouvez-vous m´aider à réaliser cela avec xslt? Jusqu´ici avec la fonction position() je ne n´arrive qu´à avoir (code de la classe; position courante de la classe) mais pas la position courante de la Super-Classe du noeud courant. J´ai essayé en utilisant <xsl:variable/> pour mon incrémentation, mais je ne peux pas du tout changer la valeur de cette variable, une fois définie, elle reste constante.

Toute aide serait plus que bienvenue. Merci.

Sylvie