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 :
Qui est lancée sur le xml suivant :
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; }
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 :
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>
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 ....
Partager