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 :

Traiter et injecter du XML dans du HTML en "live"


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Points : 160
    Points
    160
    Par défaut Traiter et injecter du XML dans du HTML en "live"
    Bonjour

    Alors voila mon petit problème :

    Je suis actuellement en train de coder une e-boutique basée sur la technologie Ajax histoire de me faire la main

    Mais j'éprouve quelques difficultés à traiter la réponse XML que je recois apres ma requete en XMLHTTP :/

    J'ai beau jouer avec les documentElement, les getElementsByTagName, les hasChildNodes etc etc, je n'arrive pas a retirer l'information que je veux...

    En fait j'y arrive pas du tout ^^ Au départ, j'ai bien contourné le pb en traitant un responseText, mais c'est assez lourd...

    help me

    En sachant que le fichier xml retourné est du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <produit>
      <id>26</id>
      <nom>Mon joli produit</nom>
    </produit>

    Comment puis je faire pour récupérer "26" et "Mon joli produit" dans des variables en javascript afin de pouvoir les injecter dans mon HTML par apres ?

    Merci par avance de votre aide

    edit: aurtokraff

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Traiter et injecter du XML dans du HTML en "live&qu
    Citation Envoyé par narnou
    En sachant que le fichier xml retourné est du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <produit>
      <id>26</id>
      <nom>Mon joli produit</nom>
    </produit>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docXML.getElementsByTagName('nom')[0].firstChild.data
    Tu es sur que ton XML est bien formé (en-tête XML, encodage en UTF8, type MIME correct)?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Points : 160
    Points
    160
    Par défaut
    Je suis certain que mon document XML est bien formé oui

    C'est moi le noob, getElementsByTagName renvoye un tableau, et j'essayais d'acceder au contenu sans indiquer d'index... alors évidemment...

    Enfin la je vais manger donc j'essayerai apres, mais je pense que ca devrait rouler

    Je vous tiens au courant, merci :p

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Points : 160
    Points
    160
    Par défaut
    Bon c'est ok, j'ai réussi a ressortir mes informations, j'espère que je n'aurai pas trop de mal à les réinjecter après :p

    Par contre, je voudrais mourrir moins con, car je pense que y'a quand meme quelque chose qui m'échappe :/

    Avec un fichier xml du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <produit>
      <id>26</id>
      <nom>Mon joli produit</id>
    </produit>
    Alors pour cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DocXML.getElementsByTagName('nom')[0].firstChild.data
    DocXML représente bien le responseXML de mon instance de l'objet xmlhttp.

    getElementsByTagName('nom') cible les éléments "<nom>Mon joli produit</nom>" de mon fichier

    [0] car c'est en fait une liste, vu qu'il pourrait y avoir plusieurs éléments "nom"

    data pour les données se trouvant encapsulées dans l'élément ok


    Si je me suis pas planté, alors je ne comprends pas bien le firstChild :/ quelqu'un pourrait m'éclairer ? ca me perturbe un peu :'(

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par narnou
    Par contre, je voudrais mourrir moins con, car je pense que y'a quand meme quelque chose qui m'échappe :/
    Tout à ton honneur

    Citation Envoyé par narnou
    getElementsByTagName('nom') cible les éléments "<nom>Mon joli produit</nom>" de mon fichier

    [0] car c'est en fait une liste, vu qu'il pourrait y avoir plusieurs éléments "nom"

    data pour les données se trouvant encapsulées dans l'élément ok


    Si je me suis pas planté, alors je ne comprends pas bien le firstChild :/ quelqu'un pourrait m'éclairer ? ca me perturbe un peu :'(
    Pas tout à fait.

    En fait ton document DOM a cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    produit
    |
    |--id
    |   |--Noeud Text (data=26)
    |
    |--nom
        |--Noeud Text (data=Mon joli produit)
    Donc getElementsByTagName te renvoie la liste des Noeuds éléments qui ont comme tag nom (ou id). Tu prends le premier de ces noeuds.
    Et le firstChild de ce Noeud élement est un Noeud texte, dont la valeur est dans l'attribut data. Depuis le Noeud élement, tu ne peux pas acceder directement au texte contenu dans le noeud.

    (PS: en fait pour vraiment tout te dire tu peux le faire, mais uniquement en DOM 3, qui n'est pas implementé partout, particulièrement dans IE, avec la propriété textContent)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 159
    Points : 160
    Points
    160
    Par défaut
    Merci

    J'ai en effet mieux capté :p Je ne pensais pas que le texte était un noeud a par entière, mais plutot une propriété du noeud nom ou id :/

    Enfin ca va la c'est parfait :p

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

Discussions similaires

  1. Vos lumières pour lire du XML dans du HTML
    Par iviewclear dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2010, 13h19
  2. Rendu de xml dans du html
    Par dj.motte dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 18/04/2009, 01h18
  3. [XSLT] lien sur xml dans page html
    Par paquita dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 20/10/2006, 13h14
  4. Insérer du XML dans du HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 29/04/2005, 16h21

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