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 :

[AJAX] Lecture d'un fichier XML


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [AJAX] Lecture d'un fichier XML
    Bonjour, ça fait maintenant un petit moment que je cherche à lire un fichier XML avec javascript afin d'en afficher le contenu. il faut savoir que mon code fonctionne en partie. je reçoit bien un fichier XML que je peux traiter (le fichier XML est contenu dans docXML). Il me suffit maintenant de lister les infos du tutoriel. C'est là que j'ai un problème. Je n'arrive pas à récupérer correctement le contenu du XML et de simplement lister ses infos.

    mon fichier XML :
    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
     
    <?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
    <liste>
    <tutoriel>
    	<id>_______</id>
    	<photo>______</photo>
    	<titre></titre>
    	<resume></resume>
    </tutoriel>
    <tutoriel>
    	<id>_______</id>
    	<photo>______</photo>
    	<titre></titre>
    	<resume></resume>
    </tutoriel>
    </liste>
    Le code qui doit normalement lister les infos. Je sais que le code n'est pas du tout correct mais c'est la première fois que je fait ça. Comment lister les informations des tutoriels (id,photo,titre,resume) ?? avec javascript.
    Les infos s'affichent dans une <div class="article"></div>

    Mon code javascript :
    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
     
    var docXML = xhr.responseXML;
     
    	var tutoriels = docXML.getElementsByTagName("tutoriel");
     
     
    		for (i=0;i<tutoriels.length;i++)
    			{
    			var Tuto=tutoriels.item(i);
    		        var id = Tuto.firstChild;
    			var titre = Tuto.nextsibling;
    		        var photo = Tuto.nextsibling;
    			var resume = Tuto.lastChield;		
     
    			document.getElementById('article').innerHTML="info :"+id+" "+titre+" "+photo+" "+resume;
    		        }
    Voilà !!! si vous avez besoin de plus de précision n'hésitez pas
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var id = Tuto.firstChild;
    Effectivement, les navigateurs n'ayant pas la même interprétation du DOM, Tuto.firstChild est susceptible d'être en fait un noeud vide (le retour chariot en fait).
    Pourquoi ne pas plutôt faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for (i=0;i<tutoriels.length;i++)
    			{
    			var Tuto=tutoriels.item(i);
    		        var id = Tuto.getElementsByTagName('id')[0];
    			var titre = Tuto..getElementsByTagName('titre')[0];
    		        var photo = Tuto..getElementsByTagName('photo')[0];
    			var resume = Tuto..getElementsByTagName('resume')[0];		
     
    			document.getElementById('article').innerHTML="info :"+id+" "+titre+" "+photo+" "+resume;
    		        }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse Bovino !!!

    J'ai tester le code que tu m'a donné. Par contre les deux points produisent une erreur (je sais pas si c'est normale).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var titre = Tuto..getElementsByTagName('titre')[0];
    Je les ai donc enlevé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for (i=0;i<tutoriels.length;i++)
    			{
    			var Tuto=tutoriels.item(i);
    			var id = Tuto.getElementsByTagName('id')[0];
    			var titre = Tuto.getElementsByTagName('titre')[0];
    			var photo = Tuto.getElementsByTagName('photo')[0];
    			var resume = Tuto.getElementsByTagName('resume')[0];		
     
    			document.getElementById('article').innerHTML="info :"+id+" "+titre+" "+photo+" "+resume;
    			}
    Mais je n'arrive toujours pas à lire les élements. J'ai ce message qui s'affiche
    info :[object Element] [object Element] [object Element] [object Element]

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ben, en fait, les deux points, c'est une erreur de ma part ! Il n'en faut qu'un !!!
    En revanche, par cette méthode, tu accèdes à l'élément, pas à sa valeur... d'où la valeur que tu récupères !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'arrive à accéder au contenu avec cette syntaxe !!! si ça intéresse quelqu'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var titre = Tuto.getElementsByTagName('titre')[0].firstChild.data;

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, cette syntaxe est correcte, étant donné ton xml, cela fonctionne, en revanche, tu devrais peut-être par sécurité vérifier que le firstChild ne correspond pas à un noeud vide (data='\n') au cas où il y ait un retour chariot entre le tag et son contenu.
    Mais sinon, ton souci semble être

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

Discussions similaires

  1. [JS/XML/Ajax?] Lecture d'un fichier XML
    Par Hao dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/10/2007, 09h14
  2. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 31/01/2006, 15h54
  3. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

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