Bonjour à tous !
J'aimerai créer via XSL un document HTML présentant un tableau listant des adresses d'un document XML. Chaque ligne du tableau doit comprendre une adresse complète: id, voie, commune, longitude et latitude.
Voici mon document XML:
Code XML : 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 <depistages> <adresses> <foyer> <id>xxx</id> <voie>ccc</voie> <commune>aaa</commune> </foyer> <foyer> <id>zzz</id> <voie>ggg</voie> <commune>yyy</commune> </foyer> </adresses> <geolocalisations> <localisation> <id>eee</id> <longitude>ggg</longitude> <latitude>hhh</latitude> </localisation> <localisation> <id>lllllllllllllllll</id> <longitude>tttttttttttt</longitude> <latitude>kkkkkkkkkkk</latitude> </localisation> </geolocalisations> </depistages>
Voici le code pour le tableau:
Code XSL : 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 <table> <tr> <th> Id</th> <th>Voie</th> <th>Commune</th> <th >Longitude</th> <th>Latitude</th> </tr> <xsl:for-each select = "//foyer | //localisation"> <xsl:sort select="id" /> <xsl:variable name="id" select="id" /> <tr> <td> <xsl:value-of select = "$id"/> </td> <td> <xsl:value-of select = "voie"/> </td> <td> <xsl:value-of select = "commune"/> </td> <td> <xsl:value-of select = "longitude"/> </td> <td> <xsl:value-of select = "latitude"/> </td> </tr> </xsl:for-each> </table >
J'obtiens un tableau comprenant les bonnes adresses ( identifiant de foyer associé à identifiant de localisation ) car les données sont triées par identifiant. Mais le problème est que j'obtient sur une ligne, les valeurs de Id, Voie, et Commune et sur la suivante, les valeurs de Id (encore), longitude et latitude associées. Comment réutiliser la valeur de l'élément id pour afficher la bonne localisation et ne pas avoir de répétition en utilisant xsl:variable ?
Merci pour votre aide !
Partager