Parser du XML contenant des balises HTML
Bonjour,
je récupère via ajax du xml et y prend le contenu d'une balise pour l'insérer dans un div html.
Voici mon fichier xml :
Code:
1 2 3 4 5
| <?xml version="1.0" encoding="UTF-8"?>
<reponse>
<titre>ok</titre>
<contenu>essai : ok</contenu>
</reponse> |
Voici mon script pour le parser :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(resultat,"text/xml");
}
else
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(resultat);
}
var titre = xmlDoc.getElementsByTagName("titre")[0].childNodes[0].nodeValue;
var contenu = xmlDoc.getElementsByTagName("contenu")[0].childNodes[0].nodeValue;
document.title = titre;
document.getElementById("contenu").innerHTML = contenu; |
La variable resultat étant la réponse reçu via ajax.
Tout allait bien jusqu'à ce que j'insère des balises HTML entre les <contenu></contenu>.
La parser plante, Il ne récupère que le texte jusqu'à la 1ere balise HTML fermante.
Logique qu'il veut parser les balises HTML.
Pour y remédier, j'ai mis une section CDATA dans cette balise contenu :
Code:
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="UTF-8"?>
<reponse>
<titre>ok</titre>
<contenu>
<![CDATA[essai : <div>ok</div>]]>
</contenu>
</reponse> |
Le résultat est que avec ou sans balises HTML, la variable contenu est vide.
Du moins elle n'est pas null mais comporte 3 caractères (je le sais grâce à contenu.length) mais rien ne se met dans ma balise via innerHTML ni même dans une alert().
Une bonne âme pour m'aider a arrêter de tourner en rond ? :cry:
Merci