Accès aux nœuds XML DOM
- Page précédente Propriétés et méthodes DOM
- Page suivante Informations sur les nœuds DOM
Grâce au DOM, vous pouvez accéder à chaque nœud du document XML.
Exemple
L'exemple suivant utilise un fichier XML books.xml.
Fonction loadXMLDoc()se trouve à l'extérieur du JavaScript, utilisé pour charger les fichiers XML.
- Accéder aux nœuds en utilisant l'index du tableau de nœuds
- Dans cet exemple, la méthode getElementsByTagname() est utilisée pour obtenir le troisième élément <title> dans "books.xml".
- Circuler les nœuds en utilisant l'attribut length
- Dans cet exemple, l'attribut length est utilisé pour circuler tous les éléments <title> dans "books.xml".
- Vérifier le type de nœud de l'élément
- Dans cet exemple, l'attribut nodeType est utilisé pour obtenir le type de nœud de l'élément racine dans "books.xml".
- Circuler les nœuds d'élément
- Dans cet exemple, l'attribut nodeType est utilisé pour traiter les nœuds d'élément dans "books.xml".
- Par les relations de nœuds, circuler les nœuds d'élément
- Dans cet exemple, les attributs nodeType et nextSibling sont utilisés pour traiter les nœuds d'élément dans "books.xml".
Accéder aux nœuds
Vous pouvez accéder aux nœuds de trois manières :
- en utilisant la méthode getElementsByTagName()
- par le biais de la navigation dans l'arbre de nœuds
- en utilisant les relations entre les nœuds pour naviguer dans l'arbre de nœuds
Méthode getElementsByTagName()
getElementsByTagName() renvoie tous les éléments portant le nom de balise spécifié.
grammaire
node.getElementsByTagName("tagname");
Exemple
L'exemple suivant retourne tous les éléments <title> sous x :
x.getElementsByTagName("title");
Veuillez noter que l'exemple ci-dessus ne retourne que les éléments <title> sous x. Pour retourner tous les éléments <title> du document XML, utilisez :
xmlDoc.getElementsByTagName("title");
Ici, xmlDoc est le document lui-même (nœud de document).
Liste de nœuds DOM
La méthode getElementsByTagName() retourne une liste de nœuds (liste de nœuds). La liste de nœuds est un tableau de nœuds.
Le code suivant utilise loadXMLDoc() Définissez "books.xml"Charger xmlDoc dans, puis stocker une liste de nœuds <title> dans la variable x :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
Vous pouvez accéder aux éléments <title> dans x via un index. Pour accéder au troisième <title>, vous pouvez écrire :
y=x[2];
Remarque :Les indices commencent à 0.
Vous apprendrez plus sur les listes de nœuds dans les chapitres ultérieurs de ce tutoriel.
Longueur de la liste de nœuds DOM
La propriété length définit la longueur de la liste de nœuds (c'est-à-dire le nombre de nœuds).
Vous pouvez itérer sur une liste de nœuds en utilisant la propriété length :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Exemple d'explication :
- Utilisez loadXMLDoc() Définissez "books.xml"Charger xmlDoc
- Obtenez tous les éléments <title>
- Sortie de la valeur du noeud texte de chaque élément <title>
Type de noeud
Le document XML de documentElement L'attribut est le noeud racine.
Les attributs du noeud sont nodeName Le nom du noeud est
Les attributs du noeud sont nodeType Les attributs sont le type du noeud.
Vous apprendrez plus sur les attributs des nœuds dans la section suivante de ce tutoriel.
Parcourir les nœuds
Le code suivant itère sur les sous-nœuds de l'élément racine, qui sont également des nœuds élémentaires :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Traiter uniquement les noeuds élémentaires (type 1) document.write(x[i].nodeName); document.write("<br />"); } }
Exemple d'explication :
- En utilisant loadXMLDoc() Définissez "books.xml"Charger dans xmlDoc"
- Obtenez les sous-nœuds de l'élément racine
- Vérifiez le type de noeud de chaque sous-nœud. Si le type de noeud est "1", il s'agit d'un noeud élémentaire
- Si le noeud est un noeud élément, affichez le nom du noeud
Naviguer en utilisant les relations de noeuds
Le code suivant navigue dans l'arbre de noeuds en utilisant les relations de noeuds :
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Traiter uniquement les noeuds élémentaires (type 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- En utilisant loadXMLDoc() Définissez "books.xml"Charger dans xmlDoc"
- Obtenez le premier enfant de l'élément "book"
- Définissez la variable "y" comme le premier enfant du premier élément "book"
- Vérifiez le type de noeud de chaque noeud enfant, si le type de noeud est "1", c'est un noeud élément
- Si le noeud est un noeud élément, affichez le nom du noeud
- Définissez la variable "y" comme le prochain noeud frère et exécutez à nouveau la boucle
- Page précédente Propriétés et méthodes DOM
- Page suivante Informations sur les nœuds DOM