Liste de nœuds DOM XML
Une liste de nœuds est renvoyée par la méthode getElementsByTagName() et la propriété childNodes.
Essayez-le vous-même - Exemples
Les exemples ci-dessous utilisent le fichier XML books.xml .
Cet exemple utilise la méthode getElementsByTagName() pour obtenir le texte du premier élément <title> dans "books.xml".
Cet exemple utilise la liste des nœuds et la propriété length pour parcourir tous les éléments <title> dans "books.xml"
Cet exemple utilise une liste d'attributs pour obtenir l'attribut du premier élément <book> dans "books.xml".
Liste des nœuds DOM
Lors de l'utilisation de propriétés ou de méthodes telles que childNodes ou getElementsByTagName(), un objet de liste de nœuds est renvoyé.
Un objet liste de nœuds représente une liste de nœuds, dans le même ordre que dans le XML.
Les nœuds de la liste de nœuds sont accessibles avec des numéros d'index commençant à 0.
L'image suivante représente une liste de nœuds des éléments <title> dans " books.xml " :
Supposons que "books.xml" soit chargé dans la variable xmlDoc.
Ce fragment de code renvoie une liste de nœuds d'éléments de titre dans "books.xml":
x = xmlDoc.getElementsByTagName("title");
Après l'exécution de l'instruction ci-dessus, x est un objet de liste de nœuds.
Le fragment de code suivant renvoie le texte du premier élément <title> dans la liste de nœuds (x) :
Exemple
var txt = x[0].childNodes[0].nodeValue;
Après l'exécution de la déclaration ci-dessus, txt = "Everyday Italian".
Longueur de la liste de nœuds
Un objet de liste de nœuds se tient à jour. Si un élément est supprimé ou ajouté, la liste est automatiquement mise à jour.
La propriété length d'une liste de nœuds est le nombre de nœuds dans la liste.
Ce fragment de code renvoie le nombre d'éléments <title> dans "books.xml" :
x = xmlDoc.getElementsByTagName('title').length;
Après l'exécution de l'instruction ci-dessus, la valeur de x sera 4.
La longueur de la liste de nœuds peut être utilisée pour parcourir tous les éléments de la liste.
Ce fragment de code utilise la propriété length pour parcourir la liste des éléments <title> :
Exemple
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Sortir:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Définissez la variable x pour contenir une liste de nœuds de tous les éléments de titre
- Collectez les valeurs de nœud de texte à partir des éléments <title>
Liste d'attributs DOM (carte de nœuds nommés)
La propriété attributs d'un nœud d'élément renvoie une liste de nœuds d'attribut.
C'est ce qu'on appelle une carte de nœuds nommés et est similaire à une liste de nœuds, à l'exception de quelques différences dans les méthodes et les propriétés.
Une liste d'attributs se tient à jour. Si un attribut est supprimé ou ajouté, la liste est automatiquement mise à jour.
Ce fragment de code renvoie une liste de nœuds d'attribut à partir du premier élément <book> dans "books.xml" :
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Après l'exécution du code ci-dessus, x.length = est le nombre d'attributs et x.getNamedItem() peut être utilisé pour renvoyer un nœud d'attribut.
Ce fragment de code obtient la valeur de l'attribut "category" et le nombre d'attributs d'un livre :
Exemple
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Sortir:
cooking
1
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Définissez la variable x pour contenir une liste de tous les attributs du premier élément <book>
- Obtenir la valeur de l'attribut "category" et la longueur de la liste d'attributs