DOMParser ne reconnais pas mon XML
Bonjour,
Dans l'optique de charger dynamiquement des informations sur une page web, j'essaye de parser le retour XML d'un appel Ajax. Je viens tout juste de commencer que déjà, j'ai 2 difficultés...
1er difficulté
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
// je vous passes les details du new XHR
xhr_asynchrone.open("POST",'./nav.php',true);
xhr_asynchrone.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xhr_asynchrone.send("");
xhr_asynchrone.onreadystatechange = function()
{
if (xhr_asynchrone.readyState==4)
{
if (xhr_asynchrone.status == 200)
{
alert(xhr_asynchrone.responseText);
alert(xhr_asynchrone.responseXML);
}
else
{
alert('Erreur chargement parametres !');
}
}
} |
sur le 1er alert, j'ai exactement :
Citation:
<semaine><jour>1</jour><jour>2</jour><jour>3</jour></semaine>
sur le 2eme, j'ai juste "null"... Je ne devrais pas avoir un XMLObject ? y'a t-il quelque chose que je fasse mal ?
2eme difficulté
Dans le doute, j'ai mis la chaine de caracteres ci-dessus direct dans une string, et je l'ai donné à manger au parser :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| txt_xml_calendar = '<semaine><jour>1</jour><jour>2</jour><jour>3</jour></semaine>';
if (window.DOMParser)
{
parser=new DOMParser();
xmlCalendar=parser.parseFromString(txt_xml_calendar,"text/xml");
}
else // Internet Explorer
{
xmlCalendar=new ActiveXObject("Microsoft.XMLDOM");
xmlCalendar.async=false;
xmlCalendar.loadXML(txt_xml_calendar);
}
MkCalendrier(document.getElementById('left_box_calendrier'), xmlCalendar); |
et la fonction MkCalendrier :
Code:
1 2 3 4 5 6 7 8 9
| function MkCalendrier(objParent, xml)
{
x=xml.getElementsByTagName("jour");
alert('taille : ' + x.length);
for (z=0;z<x.length;z++)
{
alert(x[z].childNodes[0].nodeValue);
}
} |
et la, pas de problème, ca m'affiche taille : 3, puis 1, puis 2, puis 3.
Mais, gros fou dans sa tête que je suis, j'ose rajouter une balise semaine dans ma chaine contenant elle même quelques balises jour de plus
Code:
txt_xml_calendar = '<semaine><jour>1</jour><jour>2</jour><jour>3</jour></semaine><semaine><jour>4</jour><jour>5</jour><jour>6</jour></semaine>';
et là c'est le drame, taille : 0 et rien.
Suis-je donc si nul que mon XML est faux ? Ou ai-je juste rien compris à quelque chose d'autre ?
En vous remericant par avance.