Bonjour à tous !

Je galère un peu en ce moment sur du XML. J'ai un fichier personne.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
 
<?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>
Une "classe" xml qui se charge de gérer le chargement du fichier xml qu'on lui passe en paramètre

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
 
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;
	}
}
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 : 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
 
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);
 
			}
		}
Pouvez-vois m'aider car je ne comprend pas !

Merci d'avance