Bonjour, j'essaye de faire une fonction xml2tab qui prend des fichiers xml et les transforme en tableau

pour cela j'ai fait la fonction suivante :
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 xml2tab(xml,tab){//prend un objet xml et un tableau et remplis ce-dernier a partir du xml
 
 
	if (xml.hasAttributes()){//si le neud a des attributs
		alert("il y a "+xml.attributes.length+" attributs");
		for (i = 0; i < xml.attributes.length; i++) {//pour tout les attributs on les met dans le tableau
			alert("attribut "+i);
			tab[xml.attributes[i].nodeName] = xml.attributes[i].nodeValue;
		}
	}
	if (xml.hasChildNodes()) {//si le neud a des "enfants"
		alert ("il y a "+xml.childNodes.length+" childNodes");
		for (j = 0; j < xml.childNodes.length; j++) {
		//pour tous les enfants on crée un tableau contenant le tableau généré par la fonction xml2tab avec chaque enfant de l'objet xml de depart 
			alert("childnode "+j);
			var newxml = xml.childNodes[j]
			tab[xml.childNodes[j].nodeName] = new Array();
			tab[xml.childNodes[j].nodeName] = xml2tab(newxml,tab[xml.childNodes[j].nodeName]);
			alert("childnode "+j+" terminé");
		}	
	}
 
	return tab;
}
Qui est lancée sur le xml suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<parametre page="3" nbparpage="30">
<corps val_max_credit="100.00" val_carton="3.00" nb_joueur="200" nb_carton="13" gain_max="20.00"/>
<entete val_max_credit="Valeur maximum de credit" val_carton="Val Carton" nb_joueur="Nombre Joueurs" nb_carton="Nombre de cartons" gain_max="Gain maximum" txq1="Taux simple quine 1" txq2="Taux simple quine 2" txdq="Taux double quine" txcp="Taux carton plein"/>
</parametre>
Grâce aux alert je vois que je passe bien par tout dans mon tableau, mais la valeur des attributs de entete et corps sont undefined, le tableau est le suivant :

tab[page] = 3
tab[nbparpage] = 30
tab[corps] =
tab[entete] =
tab[corps][val_max_credit] = undefined
tab[corps][val_carton] = undefined
tab[corps][nb_joueur] = undefined
tab[corps][nb_carton] = undefined
tab[corps][gain_max] = undefined
tab[entete][val_max_credit] = undefined
tab[entete][val_carton] = undefined
tab[entete][nb_joueur] = undefined
tab[entete][nb_carton] = undefined
tab[entete][gain_max] = undefined
tab[entete][txq1] = undefined
tab[entete][txq2] = undefined
tab[entete][txdq] = undefined
tab[entete][txcp] = undefined

Je ne vois donc pas pourquoi les attributes.value sont undefined alors que les attributes.name sont bons ..... merci d'avance ....