Fonction récursive sur position
Bonjour à tous,
J'ai un petit problème qui semble simple, mais je n'arrive pas à le faire en XSLT malheureusement pour moi.
Voici mon XML :
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
<FICHIER>
<LIGNE>
<DONNEE>AAA</DONNEE>
<DONNEE>NOM</DONNEE>
<DONNEE>PRENOM</DONNEE>
<DONNEE>DATE</DONNEE>
(...)
</LIGNE>
<LIGNE>
<DONNEE>BBB</DONNEE>
<DONNEE>MARTIN</DONNEE>
<DONNEE>PAUL</DONNEE>
<DONNEE>12/10/2013</DONNEE>
(...)
</LIGNE>
<LIGNE>
<DONNEE>CCC</DONNEE>
<DONNEE>MATIERE_NUM</DONNEE>
<DONNEE>MATIERE</DONNEE>
<DONNEE>DATE</DONNEE>
<DONNEE>NOTE</DONNEE>
(...)
</LIGNE>
<LIGNE>
<DONNEE>DDD</DONNEE>
<DONNEE>1</DONNEE>
<DONNEE>ANGLAIS</DONNEE>
<DONNEE>12/10/2013</DONNEE>
<DONNEE>12</DONNEE>
(...)
</LIGNE>
<LIGNE>
<DONNEE>DDD</DONNEE>
<DONNEE>2</DONNEE>
<DONNEE>MATH</DONNEE>
<DONNEE>12/10/2013</DONNEE>
<DONNEE>10</DONNEE>
(...)
</LIGNE>
<LIGNE>
<DONNEE>DDD</DONNEE>
<DONNEE>3</DONNEE>
<DONNEE>CHIMIE</DONNEE>
<DONNEE>12/10/2013</DONNEE>
<DONNEE>16</DONNEE>
(...)
</LIGNE>
</FICHIER> |
Malheureusement celui-ci n'est pas bien structuré de base, et je ne peux pas l'arranger à la source.
La Ligne AAA et CCC sont ici les libellés des données BBB et DDD respectivement.
Ainsi j'aimerais arriver à un résultat du type :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<CARNET>
<ELEVE>
<!--Nom_Element=DONNEE AAA attribut val=DONNEE BBB selon la position-->
<NOM val="MARTIN"/>
<PRENOM val="PAUL"/>
</ELEVE>
<MATIERE MATIERE_NUM="1" MATIERE="ANGLAIS" NOTE="12"/>
<MATIERE MATIERE_NUM="2" MATIERE="MATH" NOTE="10"/>
<MATIERE MATIERE_NUM="3" MATIERE="CHIMIE" NOTE="16"/>
</CARNET> |
Il me faudrait associer le libellé de //LIGNE[DONNEE='AAA']/DONNEE[X] à //LIGNE[DONNEE='BBB']/DONNEE[X]
et //LIGNE[DONNEE='CCC']/DONNEE[X] à toutes les lignes //LIGNE[DONNEE='DDD']/DONNEE[X].
Je n'arrive pas à faire de fonction qui s'indexe sur X soit la position de ligne.
Je pourrais le faire ligne par ligne, mais j'aimerais faire un travail propre ...
- Auriez-vous un conseil ?
- Dois-je passer par un for-each ?
- Comment créer une fonction itérative sur la position ?
Merci à tous !