Bonjour à tous !
Je galère un peu en ce moment sur du XML. J'ai un fichier personne.xml
Une "classe" xml qui se charge de gérer le chargement du fichier xml qu'on lui passe en paramètreCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <datagrid> <personne> <nom>nom1</nom> <prenom>prenom1</prenom> <date_naissance>date1</date_naissance> </personne> <personne> <nom>nom2</nom> <prenom>prenom2</prenom> <date_naissance>date2</date_naissance> </personne> <personne> <nom>nom3</nom> <prenom>prenom3</prenom> <date_naissance>date3</date_naissance> </personne> <personne> <nom>nom4</nom> <prenom>prenom4</prenom> <date_naissance>date4</date_naissance> </personne> </datagrid>
J'ai une classe qui gère une datagrid mais celle-ci n'en fait qu'à sa tête je m'explique les données me sont retourné de façon étrange une fois ça fonctionne (quand alert est placé avant ma boucle) et un fois non (quand je supprime le alert)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 function xml(fileXml){ this.docXml = null; this.file=fileXml; //methode loadXML en public this.loadXML = function loadXML(){ if (document.implementation && document.implementation.createDocument) //Firefox this.docXml = document.implementation.createDocument('', '', null); else if (window.ActiveXObject) // I.E de mes ... this.docXml = new ActiveXObject("Microsoft.XMLDOM"); else return null; this.docXml.load(this.file); } this.getXML = function getXML(){ if (this.docXml != null) return this.docXml; } }
Pouvez-vois m'aider car je ne comprend pas !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function loadTable() { // chargement du xml avec la class XML var XMLData = new xml(this.xmlpage); XMLData.loadXML(); var personne = XMLData.getXML().getElementsByTagName("personne"); // si ce alert n'est pas là on ne passe pas dans la boucle .... alert(personne.length); for(var i = 0; i < personne.length; i++) { var e = personne[i]; // var name = e.getAttribute("name"); var nom = e.getElementsByTagName("nom")[0].firstChild.data; var prenom = e.getElementsByTagName("prenom")[0].firstChild.data; alert(nom+" "+prenom); } }
Merci d'avance