[JavaScript/XML] Parser un fichier XML en variable arbre

Parser un fichier XML en variable arbre [JavaScript/XML] - HTML/CSS - Programmation

Marsh Posté le 14-04-2006 à 13:00:52    

Bonjour,
 
j'ai fait quelques recherches sur ce sujet : je veux pouvoir lire un fichier XML à une adresse http:// et être capable de le parcourir connaissant sa structure. Par exemple si le fichier est :
 

Code :
  1. <biblio>
  2.     <livre>
  3.         <auteur>foo</auteur>
  4.     </livre>
  5.     <livre>
  6.         <auteur>bar</auteur>
  7.     </livre>
  8. </biblio>


 
j'aimerai accéder à foo en faisant un truc du genre :
 

Code :
  1. fichierxml.node biblio [0].node livre [0].node auteur [0].valeur


 
et à bar de la façon similaire :
 

Code :
  1. fichierxml.node biblio [0].node livre [1].node auteur [0].valeur


 
J'ai l'impression que la DOM est mon amie mais les codes que je trouve utilisent le nom de la balise sans se soucier forcément de la structure. Je pense que ça existe car j'avais trouvé un code php qui faisait ça très bien.
 
Auriez-vous une explication sur la DOM ou quelques lignes de code qui pourraient m'aider un peu ?
 
Merci pour votre aide ! :)

Reply

Marsh Posté le 14-04-2006 à 13:00:52   

Reply

Marsh Posté le 14-04-2006 à 13:21:00    

Alors voici les propriétés d'un noeud dont tu peux te servir:

Citation :


Set Objet_NodeList = Objet_Node.childNodes
contient une liste de noeuds contenant les enfants en lecture seule.
Set Objet_Node = Objet_Node.firstChild
contient le premier enfant de ce noeud en lecture seule.
Set Objet_Node = Objet_Node.lastChild
contient le dernier noeud enfant en lecture seule.
Set Objet_Node = Objet_Node.nextSibling
contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule.
Set Objet_Node = Objet_Node.previousSibling
contient le frère gauche de ce noeud en lecture seule.
Set Objet_Node = Objet_Node.parentNode
contient le noeud parent en lecture seule.


Et tu peux également avoir besoin des méthodes suivantes:

Citation :


true | false = Objet_Node.hasChildNodes()
retourne True si le noeud a des enfants.
Set Objet_NodeList = Objet_Node.selectNodes(Expression_Pattern)
applique l'opération de mise en correspondance de modèles indiquée au contexte de ce noeud et retourne la liste de noeuds correspondants.


Tu dois pouvoir trouver la liste des méthodes/propriétés DOM utilisables assez rapidement via google.
 
Pour ton exemle, en utilisant uniquement la structure d'arbre, ça donnerait:

Code :
  1. //pour le 1er uniquement avec first et last child
  2. fichierxml.firstChild.lastChild.firstChild.value;
  3. // et le 2eme uniquement avec les childNodes
  4. fichierxml.childNodes[0].childNodes[1].childNodes[0].value;


Message édité par anapajari le 14-04-2006 à 13:23:59
Reply

Marsh Posté le 14-04-2006 à 13:25:29    

ah merci pour ces exemples :)
je vais tester un peu tout ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed