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
Partager