Accès aux nœuds DOM XML

Grâce au DOM, vous pouvez accéder à chaque nœud du document XML.

Accéder aux nœuds

Vous pouvez accéder aux nœuds de trois manières :

  • En utilisant la méthode getElementsByTagName()
  • En parcourant 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() Retourne tous les éléments possédant le nom de balise spécifié.

Syntaxe

node.getElementsByTagName("tagname");

Exemple

L'exemple suivant retourne tous les éléments <title> sous l'élément x :

x.getElementsByTagName("title");

Veuillez noter que l'exemple ci-dessus ne retourne que les éléments <title> sous les nœuds x. Pour retourner tous les éléments <title> du document XML, utilisez :

xmlDoc.getElementsByTagName("title");

Ici,xmlDoc c'est le document lui-même (nœud de document).

Liste des nœuds DOM

getElementsByTagName() 方法返回节点列表(node list)。节点列表是节点的数组。

La méthode retourne une liste de nœuds (liste de nœuds). La liste de nœuds est un tableau de nœuds.

x = xmlDoc.getElementsByTagName("title");

Vous pouvez accéder à l'élément <title> dans x par l'index. Pour accéder au troisième <title>, vous pouvez écrire ainsi :

y = x[2];Remarque :

Essayez-le vous-même

L'index commence à 0.

Vous pouvez utiliser Longueur de la liste de nœuds DOM

L'attribut pour définir la longueur de la liste de nœuds (nombre de nœuds). Vous pouvez utiliser length

Exemple

L'attribut pour parcourir la liste des nœuds :
for (i = 0; i <x.length; i++) {
  var x = xmlDoc.getElementsByTagName("title");
  }

Essayez-le vous-même

//Ici, vous pouvez écrire le code pour traiter chaque nœud

Type de nœud Les nœuds du document XML documentElement

L'attribut du nœud est. L'attribut est le nœud racine. nodeName

L'attribut du nœud est. nodeType Les attributs sont le type du nœud.

Vous apprendrez plus sur les attributs des nœuds dans le prochain chapitre de ce tutoriel.

Essayez-le vous-même

Parcourir les nœuds

Le code suivant parcourt les sous-nœuds du nœud racine (également des nœuds d'élément) :

Exemple

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++) {
  //Traiter uniquement les nœuds d'élément (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Essayez-le vous-même

Exemple d'explication :

  1. Supposons que vous ayez déjà chargé "books.xml"Charger dans xmlDoc
  2. Obtenir les sous-nœuds du nœud racine (xmlDoc)
  3. Vérifiez le type de chaque sous-nœud. Si le type de nœud est "1"C'est un nœud d'élément
  4. Si c'est un nœud d'élément, affichez le nom du nœud

Navigation des relations de nœuds

Le code suivant navigue dans l'arbre de nœuds en utilisant les relations entre les nœuds :

Exemple

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++) {
  //Ne traiter que les nœuds d'élément (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Essayez-le vous-même

Exemple d'explication :

  1. Supposons que vous ayez déjà chargé "books.xml"Charger dans xmlDoc
  2. Obtenir les sous-nœuds de l'élément "book" premier
  3. Définir la variable "y" sur le premier sous-nœud de l'élément book
  4. Pour chaque sous-nœud (à partir du premier sous-nœud "y" (début) :
  5. Vérifiez le type de chaque sous-nœud. Si le type de nœud est "1" alors c'est un nœud élément
  6. Si le nœud est un nœud élément, affichez le nom du nœud
  7. Définir "y" Variable est définie sur le prochain nœud frère, puis le cycle est réexécuté à nouveau