Bonjour
Depuis quelques jours je bute sur une transformation XML qui pourtant me semble classique car elle me fait penser à une rotation lignes-colonnes. Pourtant je ne trouve pas de documentation qui m'aiderait à résoudre mon problème que j'expose ci-dessous. Mais je ne recherche peut-être pas avec les bons mots-clefs.
J'aurais besoin, à partir d'un XML dont les éléments "date" contiennent des éléments prévision de températures sur différentes villes, de fabriquer un tableau HTML avec les dates en colonnes et une ligne pour chaque ligne.
C'est à dire j'ai un XML de cette forme
Que je voudrais transformer en un tableau HTML de ce genre
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
29
30
31
32
33
34
35
36
37
38
39 <racine> <dates> <date jour="jour1"> <prevision> <ville>ville1</ville> <temperature>15<temperature> <vent>S-O</vent> </prevision> <prevision> <ville>ville2</ville> <temperature>13<temperature> <vent>N-O</vent> </prevision> <prevision> ... </prevision> </date> <date jour="jour2"> <prevision> <ville>ville1</ville> <temperature>18<temperature> <vent>S-E</vent> </prevision> <prevision> <ville>ville2</ville> <temperature>15<temperature> <vent>N</vent> </prevision> <prevision> ... </prevision> </date> <date> ... </date> </dates> </racine>
Pour afficher un tableau comme ci-dessous
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
29
30
31
32
33
34
35
36
37 <table> <tbody> <tr> <th> </th> <th colspan="2"> Jour 1 </th> <th colspan="2"> jour 2 </th> ... </tr> <tr> <th> </th> <th>T°</th> <th>Vent</th> <th>T°</th> <th>Vent</th> ... </tr> <tr> <th> Ville 1 </th> <td> 15 </td> <td> S-O </td> <td> 13 </td> <td> N-O </t> ... </tr> <tr> <th> Ville 2 </th> <td> 18 </td> <td> S-E </td> <td> 15 </td> <td> N </t> ... </tr> .... </tbody> </table>
-------------------------------
! jour 1 ! jour 2 ! ...
-------------------------------
! t°C ! vent ! t°C ! vent ! ...
-----------------------------------------
! ville 1 ! 15 ! S-O ! 13 ! N-O ! ...
-----------------------------------------
! ville 2 ! 18 ! S-E ! 15 ! N ! ...
-----------------------------------------
! ... ! ! ! ! ! ...
-----------------------------------------
A priori, je ne connais pas le nombre de jours ni le nombre de villes.
Je n'ai pas de problème pour créer les colonnes grâce à xsl-for-each sue l'élément "date".
En revanche je n'arrive pas à créer les lignes correspondant aux villes.
Je suppose qu'il faudrait que je crée une liste contenant une seule fois chaque ville.
Je me suis orienté vers xsl:key, mais sans succès jusqu'à présent.
Quelqu'un saurait-il m'aiguiller dans la bonne direction ou vers un page traitant un sujet semblable ?
Merci
_Rainbow
Partager