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