Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1027 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Parser du XML avec Javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Parser du XML avec Javascript

n°1289748
sylsau
Posté le 22-01-2006 à 22:26:50  profilanswer
 

Bonjour,
 
Je tente de faire une petite applicaton qui récupère des données contenues dans un fichier xml via javascript.
Pour cela, j'utilise XMLHttpRequest et j'arrive ensuite à parser en partie mon document XML.
 
Pour récupérer les attributs d'un tag précis, j'utilise en gros la ligne suivante (adaptée à mes besoins ensuite) :
 


reqXML.responseXML.getElementsByTagName("nom_du_tag" )[0].getAttribute("nom_attribut" );


 
où reqXMLest une instance de l'objet XMLHttpRequest.  
Ceci marche bien.
 
Cependant, j'ai quelques problèmes pour récupérer les valeurs de certains tags imbriqués.
 
Par exemple si l'on a  
 


<rte><number>0</number><name>Test</name></number></rte>


 
Ici, je pourrais récupérer le contenu entre les balises number et name en me servant de getElementsByTagName de la manière suivante :
 


reqXML.responseXML.getElementsByTagName("nom_du_tag" )[0].firstChild.nodeValue;


 
Cependant en me servant de ça et en parcourant tous les tags number,  j'aurais toutes les valeurs des tags number ici mais en dehors du contexte c'est-à-dire que le fait que ce soit imbriqué dans le tag rte ne serait pas pris en compte pour mon traitement après.
 
Ce que j'aimerais arriver à faire c'est la chose suivante :  
 
- Chercher les tags rte (ça je sais le faire)
- et ensuite pour chacun de ces tags, parcourir chacun des fils de ce tag et faire le traitement adéquat.
 
Et malheureusement, je n'arrive pas à faire cette seconde étape, je n'arrive pas à parcourir les fils d'un tag et récupérer les valeurs contenues dans ces tags.
 
Si quelqu'un avait une idée de la manière de récupérer ces informations, je suis preneur.
 
 
Merci d'avance de votre aide.
 
Sylvain.

mood
Publicité
Posté le 22-01-2006 à 22:26:50  profilanswer
 

n°1289855
anapajari
s/travail/glanding on hfr/gs;
Posté le 23-01-2006 à 09:34:13  profilanswer
 

Ce qu'il te manque c'est la proprieté childNodes. Suffit de faire un truc dans le genre:

Code :
  1. rteNode = reqXML.responseXML.getElementsByTagName("nom_du_tag" ).item(0);
  2. for(var i=0; i<=rteNode.childNodes.length; i++){
  3.   switch( rteNode.childNodes.item(i).tagName ){
  4.     case 'number':
  5.              ... ton traitement des numbers ...
  6.     break;
  7.     case 'name':
  8.              ... ton traitement des names ...
  9.     break;
  10.     default:
  11.     break;
  12.   }
  13. }


 
Par contre je te déconseille de te servir de la syntaxe suivante:

Code :
  1. reqXML.responseXML.getElementsByTagName("nom_du_tag" )[0]


Cela laisse croire que le retour de getElementsByTagName retourne un tableau, alors que cela retourne une liste de noeud.
Utilise plutot

Code :
  1. reqXML.responseXML.getElementsByTagName("nom_du_tag" ).item(0)



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Parser du XML avec Javascript

 

Sujets relatifs
Firefox n'aime pas le XML+XSL+JavascriptRecuperer valeur d'une liste deroulante en javascript
[Javascript] Plusieurs onmouseOver ?[Javascript] Boite de dialogue
[javascript] calcul de la hauteur d'un élément[Résolu][C# & XML] Valider un fichier xml selon un schéma
Formatage d'une chaine XML en arbreprobleme de compatibilité IE/firefox en javascript
javascript : lire le contenu d'une page 
Plus de sujets relatifs à : Parser du XML avec Javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR