IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

ajax xml et text()


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut ajax xml et text()
    Je répondais à un autres post sur le forum et j'ai réalisé un teste pour vérifier le code.
    Le but de la manoeuvre appeler un fichoier xml et afficher le contenu text() d'un node:

    l'appel ajax :
    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
     
    function getXml()
    			{
    				$(document).ready(function()
    				{
    					$.ajax
    					({ 
    						 type: "GET", 
    						 url: "accueil.xml", 
    						 dataType: "xml", 
    						 success: function(xml) 
    								{
    									var doc_xml = $(xml).find('corps').text();
    									$('#corps').html(doc_xml);
    								}
     
    					});
    				});
    			}
    le fichier xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <rabbitweb>
    	<corps>
    	<![CDATA[
     
    		<h1><i>Je</i> <u>suis</u> <b>un éléphant <i><u>!</u></i></b></h1>
     
    	]]>
    	</corps>
    </rabbitweb>
    Ce qui m'étonne:

    le text() récupéré est mis en forme, ce qui veut dire que je récupère les balises html !
    si je supprime les balises CDATA je ne récupère que le texte sans les balises html
    Bien entendu si je vire les balises CDATA et que je recupère le html() j'ai bien la mise en forme.
    Ma question est donc: pourquoi récupères-je le code html et non le text lorsque je conserve les balises CDATA ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Salut

    Comme indiqué dans la doc :
    As of jQuery 1.4, the .text() method returns the value of text and CDATA nodes as well as element nodes.
    Et l'exemple en dessous.

    Du coup si tu lis le texte du noeud, ton texte contient les balises puisque les CDATA fait que les balises sont non interprêtées et comptées comme du texte. Et si tu mets ce texte dans html(), il va être interprêté en HTML

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Ok donc CDATA indique que le contenu est du string et non du code HTML
    Il récupère donc l'intégralité du contenu qui placé dans une balise html devient du code HTML.

    Logique

    Bibs
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2009, 14h51
  2. [AJAX] XML généré ok, responseXML.documentElement vide !
    Par LeCaméléon dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2006, 09h53
  3. [XSLT] XML to Text
    Par syvid dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 07/06/2006, 15h44
  4. [AJAX] éditeur de texte
    Par Death83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/03/2006, 13h26
  5. xhr(ajax?) xml et encodage
    Par tthierry dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/12/2005, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo