Liste de nœuds DOM XML

getElementsByTagName() et childNodes Cette propriété peut renvoyer une liste de nœuds.

Liste des nœuds DOM

Lorsque vous utilisez childNodes ou getElementsByTagName() Lorsque vous utilisez des propriétés ou des méthodes telles que

L'objet NodeList représente une liste de nœuds, dont l'ordre est le même que celui de l'XML.

Les nœuds de la liste NodeList peuvent être accédés via des indices numériques commençant à 0.

La figure suivante représente books.xml Liste des nœuds de l'élément <title> :

Liste des nœuds DOM

Assumons que "books.xml" a été chargé dans la variable xmlDoc.

Ce fragment de code renvoie la liste des nœuds des éléments title dans "books.xml":

x = xmlDoc.getElementsByTagName("title");

Après l'exécution des instructions ci-dessus, x devient un objet NodeList.

Le fragment de code suivant retourne le texte de l'élément <title> premier de la liste (x) :

Exemple

var txt = x[0].childNodes[0].nodeValue;

Essayez-le vous-même

Après l'exécution des instructions ci-dessus, txt = "雅舍谈吃".

La longueur de la liste des noeuds

L'objet NodeList conserve sa mise à jour. Si des éléments sont supprimés ou ajoutés, la liste se mettra à jour automatiquement.

La liste des noeuds length Les attributs sont le nombre de noeuds dans la liste.

Ce code retourne le nombre d'éléments <title> dans "books.xml" :

x = xmlDoc.getElementsByTagName('title').length;

Après l'exécution de la ligne précédente,x vaut 5.

La longueur de la liste des noeuds peut être utilisée pour itérer sur tous les éléments de la liste.

Ce code utilise length Parcourir la liste des éléments <title> à l'aide d'une boucle sur les attributs :

Exemple

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i < xLen; i++) {
    txt += (x[i].childNodes[0].nodeValue) + " ";
}

Essayez-le vous-même

Exemple d'explication :

  1. Présupposons books.xml a été chargé xmlDoc Chinois
  2. Définir la variable x pour sauvegarder la liste des noeuds de tous les éléments <title>
  3. Obtenir la valeur du noeud de texte à partir de l'élément <title>

Liste des attributs DOM (carte de noeuds nommés)

de l'élément attributes Les attributs retournent une liste de noeuds d'attributs.

Cela s'appelle la carte de noeuds nommés (named node map), similaire à une liste de noeuds, mais avec des méthodes et des attributs différents.

La liste des attributs restera à jour. Si des attributs sont supprimés ou ajoutés, la liste se mettra à jour automatiquement.

Ce code retourne une liste de noeuds d'attributs à partir du premier élément <book> de "books.xml" :

x = xmlDoc.getElementsByTagName('book')[0].attributes;

Après l'exécution du code suivant,x.length égal au nombre d'attributs, on peut utiliser x.getNamedItem() Retourne un noeud d'attribut.

Ce code extrait la valeur de l'attribut "category" du premier livre ainsi que le nombre d'attributs :

Exemple

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

Essayez-le vous-même

Exemple d'explication :

  1. Présupposons books.xml chargé dans xmlDoc Chinois
  2. Définir la variable x pour sauvegarder la liste de tous les attributs du premier élément <book>
  3. Obtenir la valeur de l'attribut "category" et la longueur de la liste des attributs