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

JavaScript Discussion :

[DOM] Parser du XML [Fait]


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Par défaut [DOM] Parser du XML
    Bonjour à tous,

    je suis en train de galérer avec le traitement d'un fichier XML en javascript. Voici un bout de mon fichier XML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <markers>
    <marker folder="1" idpoint="13">
    <description><![CDATA[<div style="background-color:#B3D1F7; width:300px; height:250px; ">
        tratata</div>]]></description>
    <details><![CDATA[<div style="background-color:#B3D1F7; width:300px; height:250px; ">tralalerere </div>]]>
    </details>
    </marker>
    Et voila comment je parse mon fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    GDownloadUrl(nomCouche, function(data, responseCode) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var idpoint = markers[i].getAttribute("idpoint");
    var folder= markers[i].getAttribute("folder");
      var desc = markers[i].getElementsByTagName("description")[0].firstChild.nodeValue;
      var details = markers[i].getElementsByTagName("details")[0].nodeValue;
    }
    });
    tout se passe plutôt bien, jusqu'au moment de récupérer la valeur de la balise "description". J'avoue na pas être un pro du DOM, mais la je comprends pas ou ca bloque. J'ai essayé un peu tout, rien à y faire.

    Est-ce que quelqu'un pourrait me venir en aide?

    Merci

  2. #2
    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
    je vois un firstChild dans le code ...
    as tu essayé de voir de quel type était ce firstChild ce n'est peut être pas l'élément auquel tu t'attends ... regarde du coté de NodeCLeaner

    Sinon une reference pour le parsage de XML http://www.w3schools.com/xml/default.asp
    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 !

  3. #3
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Utilise le getElementsByTagName sur la balise racine, c'est toujours le plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var description = xml.documentElement.getElementsByTagName("description")[0]

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Par défaut
    Bonjour,

    merci pour vos réponses. Pour ce qui est de NodeCLeaner, (on parle bien de ca?), j'ai "un peu" essayé, mais je ne suis arrivé à rien.

    si j'utilise

    var description = xml.documentElement.getElementsByTagName("description")[0]

    il me renvoie

    [object Element]

    Donc je me dis, c'est un noeud, il faut lui dire d'afficher le contenu.. (oui je sais faudrait que je revoie les bases du DOM )

    en jetant un œil la dessus, http://www.w3schools.com/xml/xml_dom.asp, j'ai fait

    var details = markers[i].getElementsByTagName("details")[0].childNodes[0].nodeValue;

    et la j'arrive à récupérer la valeur de details , mais j'ai un message d'erreur dans la console FF.

    Alors que exactement le même code, sur la balise description, ne renvoie aucune erreur dans la console

    Edit: Et du coup ca fait planter mon script..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Par défaut
    Re,

    Bon honnêtement j'y comprends rien: je n'ai rien changé mais je n'ai plus d'erreur.. enfin j'ai changé une autre partie du script (un bout plus loin), et je n'ai plus d'erreur. Donc tant mieux, j'en déduis que c'est correct.

    Merci pour votre aide

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Par défaut
    Re-Re,

    je viens de comprendre: l'erreur venait du fait que parfois la balise details était vide, donc ca le faisait planter..du coup il me faut ester si la balise est vide ou pas, je vais essayer de voir comment faire ca

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

Discussions similaires

  1. parser un XML avec DOM minidom
    Par BlackBear dans le forum Général Python
    Réponses: 4
    Dernier message: 19/08/2010, 21h47
  2. [C#] Parser du XML
    Par karl3i dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/02/2009, 09h46
  3. [DOM] Parser XML avec DOM
    Par webrider dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/01/2008, 12h45
  4. [DOM] Parser XML et wikipedia
    Par trihanhcie dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 29/05/2006, 10h35
  5. [JAXB/DOM] Parser Xml : possible avec path reel et non uri !
    Par Jaxofun dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/08/2005, 10h04

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