Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/11/2011, 10h06   #1
Nouveau Membre du Club
 
Avatar de romuluslepunk
 
Inscription : avril 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 124
Points : 31
Points : 31
Par défaut 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 ?
Merci
romuluslepunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 18h41   #2
Nouveau Membre du Club
 
Avatar de romuluslepunk
 
Inscription : avril 2005
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 124
Points : 31
Points : 31
Problème résolu, il fallait choisir le noeud 1 de la balise :
Code :
var contenu = xmlDoc.getElementsByTagName("contenu")[0].childNodes[1].nodeValue;
romuluslepunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2011, 23h42   #3
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
il existe Utiliser responseXML et cette explication Pourquoi le comportement du DOM est-il différent sous FireFox et IE ?
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h18.


 
 
 
 
Partenaires

Hébergement Web