Bonjour à tous.
Voici la structure de mon fichier XML (je note les attributs servant d'identifiant uniquement et les valeurs m'intéressant) :
J'espère tout d'abord que ma structure XML est claire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <Report> <Results_list Id="Result_id1"> <Result_line Number="1"> <Val Column="1">31/03/2009 12:00</Val> <Val Column="2">31/03/2009 06:30</Val> <Val Column="3">28/03/2009 00:00</Val> <Val Column="4">30/03/2009 23:00</Val> ... </Result_line> <Result_line Number="2"> <Val Column="1">2</Val> <Val Column="2">5</Val> <Val Column="3">7</Val> <Val Column="4">1</Val> ... </Result_line> ... </Results_list> <Results_list Id="Result_id2"> ... </Results_list> <Results_list Id="Result_id3"> ... </Results_list> ... </Report>
Je me sers d'un .XSL pour générer un fichier compatible .CSV, c'est à dire avec mes différentes valeurs séparées par un ;
Il me faut pour cela, concaténer les valeurs provenant de deux <Result_line> différents.
Exemple suivant mon exemple de fichier XML:
Pour lire mes données, j'ai deux boucles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 31/03/2009 12:00 | 2 31/03/2009 06:30 | 5 28/03/2009 00:00 | 7 30/03/2009 23:00 | 1
Il me faut donc, pour chaque noeud Val, aller lire le noeud Val ayant le même numéro de colonne mais dans le Result_line +1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xsl:for-each select="Result_line"> <xsl:for-each select="Val"> </xsl:for-each> </xsl:for-each>
J'ai essayé de multiples combinaisons avec les parent():: et autres following-sibling, mais aucun n'a réussi à me renvoyer la bonne valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <Report> <Results_list Id="Result_id1"> <Result_line Number="1"> <Val Column="1">31/03/2009 12:00</Val> <Val Column="2">31/03/2009 06:30</Val> <Val Column="3">28/03/2009 00:00</Val> <Val Column="4">30/03/2009 23:00</Val> </Result_line> <Result_line Number="2"> <Val Column="1">2</Val> <Val Column="2">5</Val> <Val Column="3">7</Val> <Val Column="4">1</Val> </Result_line> </Results_list> </Report>
Merci à tous de votre aide.
Partager