[XSLT] calcul du niveau d'un élément
Bonjour,
J'ai un fichier xml qui se présente de cette manière :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <s xml:id="SENT-0" xml:lang="french">
<phr function="Subj">
<w type="det" lemma="le">Le</w>
<w type="adj" lemma="joli">joli</w>
<w type="nom" lemma="chat">chat</w>
<phr function="DO">
<w type="pro" lemma="que">que</w>
</phr>
<phr function="Subj">
<w type="nom" lemma="je">j'</w>
</phr>
<phr function="predicate">
<w type="aux" lemma="avoir">ai</w>
<phr function="CC">
<w type="adv" lemma="gentiment">gentiment</w>
</phr>
<w type="partpass" lemma="adopter">adopté</w>
</phr>
</phr>
<phr function="predicate">
<w type="aux" lemma="avoir">a</w>
<phr function="CC" n="1">
<w type="adv" lemma="bien">bien</w>
</phr>
<w type="partpass" lemma="donner">donné</w>
</phr>
</s> |
j'aimerai pour les élément phr calculer le niveau et selon ce dernier créer un attribut n qui viendrait indiquer l'emplacement du phr.
exemple : je me situe au premier phr alors j'ai le niveau 0
je suis au second alors j'ai le niveau 1
...
si je reviens à un noeud dominant alors le niveau reviens à 0...
Sa devrait donner cela apres transformation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <s xml:id="SENT-0" xml:lang="french">
<phr function="Subj" n="0">
<w type="det" lemma="le">Le</w>
<w type="adj" lemma="joli">joli</w>
<w type="nom" lemma="chat">chat</w>
<phr function="DO" n="1">
<w type="pro" lemma="que">que</w>
</phr>
<phr function="Subj" n="1">
<w type="nom" lemma="je">j'</w>
</phr>
<phr function="predicate" n="1">
<w type="aux" lemma="avoir">ai</w>
<phr function="CC" n="2">
<w type="adv" lemma="gentiment">gentiment</w>
</phr>
<w type="partpass" lemma="adopter">adopté</w>
</phr>
</phr>
<phr function="predicate" n="0">
<w type="aux" lemma="avoir">a</w>
<phr function="CC" n="1">
<w type="adv" lemma="bien">bien</w>
</phr>
<w type="partpass" lemma="donner">donné</w>
</phr> |
comment puis je mettre cela en oeuvre en xslt?
pouvez vous m'aider merci