Bonjour, je souhaite parser un document xml. Pour une partie, j'arrive sans problème mais arrivé à un endroit, je ne trouve plus de solutions !
Fichier XML :
Maintenant le code pour parser ce fichier XML :
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 <buss> <bus id="1"> <nom>Bus 1</nom> <latitude>12.3213</latitude> <longitude>1.5761</longitude> <speed>20</speed> <nextstops> <nextstop> <arret>La fontaine</arret> <time>3</time> </nextstop> <nextstop> <arret>La poste</arret> <time>4</time> </nextstop> <nextstop> <arret>La gare</arret> <time>2</time> </nextstop> </nextstops> </bus> <bus id="2"> <nom>Bus 2</nom> <latitude>3.3242234</latitude> <longitude>6.234324</longitude> <speed>0</speed> <nextstops> <nextstop> <arret>La gare</arret> <time>08:00</time> </nextstop> </nextstops> </bus> </buss>
En fait, le nom, la longitude et la latitude, j'arrive à les récupérer sans problème, le problème c'est pour les arrets et le temps de chaque bus ! Je pense qu'il faut refaire une boucle mais je ne vois pas comment ! Actuellement, il me retourne pour chaque bus, toutes les valeur (arret+time) de tout le fichier, je n'arrive pas a lui dire de prendre seulement celui du bus en cours.
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 var nbBus = xmlDoc.getElementsByTagName("bus"); for(var i=0;i<nbBus.length;i++) { var tmp = xmlDoc.getElementsByTagName("bus")[i]; if(tmp.hasChildNodes()) { var nom = xmlDoc.getElementsByTagName("nom")[i].childNodes[0].nodeValue; var longitude = xmlDoc.getElementsByTagName("longitude")[i].childNodes[0].nodeValue; var latitude = xmlDoc.getElementsByTagName("latitude")[i].childNodes[0].nodeValue; var nextStop = xmlDoc.getElementsByTagName("nextstop"); for(var j=0;j<nextStop.length;j++) { var arret = xmlDoc.getElementsByTagName("arret")[j].childNodes[0].nodeValue; var time = xmlDoc.getElementsByTagName("time")[j].childNodes[0].nodeValue; } } }
Merci d'avance pour votre aide
Partager