Accès au DOM
XML DOM - Nœuds d'accès
Le DOM vous donne accès à chaque nœud d'un document XML.
Essayez-le - Exemple
L'exemple suivant utilise le fichier XML books.xml .
La fonction loadXMLDoc(), située en JavaScript externe, est utilisée pour charger des fichiers XML.
Utilisez le numéro d'index dans la liste des nœuds pour accéder au nœud
Cet exemple utilise la méthode getElementsByTagname() pour obtenir le troisième élément <title>
Utilisez l'attribut length pour parcourir les nœuds
Cet exemple utilise l'attribut length pour parcourir tous les éléments <title>
Afficher le type de nœud de l'élément
Cet exemple utilise l'attribut nodeType pour obtenir le type de nœud de l'élément racine dans "books.xml".
Traverser les nœuds d'éléments
Cet exemple utilise l'attribut nodeType pour traiter les nœuds d'éléments dans "books.xml".
Utiliser les relations de nœuds pour parcourir les nœuds d'éléments
Cet exemple utilise l'attribut nodeType et l'attribut nextSibling pour traiter les nœuds d'élément dans "books.xml".
Accès aux nœuds
Vous pouvez accéder aux nœuds de trois manières :
1 En utilisant la méthode getElementsByTagName().
2. En bouclant (traversant) l'arborescence des nœuds.
3. Naviguez dans l'arborescence des nœuds en tirant parti des relations entre les nœuds.
méthode getElementsByTagName()
getElementsByTagName() renvoie tous les éléments avec le nom de balise spécifié.
Syntaxe
Instance
L'exemple suivant renvoie tous les éléments <title> sous l'élément x :
Veuillez noter que ce qui précède L'instance renvoie uniquement l'élément <title> sous le nœud x. Pour renvoyer tous les éléments <title> dans un document XML, utilisez :
Ici, xmlDoc est le document lui-même ( nœud de document).
Liste de nœuds DOM (Node List)
La méthode getElementsByTagName() renvoie la liste de nœuds. Une liste de nœuds est un tableau de nœuds.
Le code suivant utilise loadXMLDoc() pour charger "books.xml" dans xmlDoc, puis stocke une liste de nœuds <title> loadXMLDoc("books.xml");
L'élément <title> . Pour accéder au troisième <titre>, vous pouvez écrire :
y=x[2];
Remarque : L'index commence à 0.
Dans les chapitres suivants de ce didacticiel, vous en apprendrez davantage sur la liste de nœuds.
Longueur de la liste de nœuds DOM L'attribut
length définit la longueur de la liste de nœuds (c'est-à-dire le nombre de nœuds).
Vous pouvez parcourir une liste de nœuds en utilisant l'attribut length :
Instance
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> 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>"); } </script> </body> </html>
Exécuter l'instance»
Cliquez sur le bouton "Exécuter l'exemple" pour voir l'exemple en ligne
Explication de l'exemple :
Utilisez loadXMLDoc() pour charger " books.xml" dans xmlDoc
Obtenir tous les nœuds d'éléments <title>
Sortir la valeur du nœud de texte de chaque <title> ; element
Types de nœuds
L'attribut documentElement d'un document XML est le nœud racine. L'attribut
nodeNamedu nœud est le nom du nœud. L'attribut
nodeTypedu nœud est le type du nœud.
Vous en apprendrez plus sur les propriétés des nœuds dans le prochain chapitre de ce tutoriel.
Essayez-le
Traversez les nœuds
Le code suivant parcourt les nœuds enfants du nœud racine, qui sont également des nœuds d'élément :
Exemple
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br>"); } } </script> </body> </html>
Exécuter l'instance»
Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne
Instance explication :
Utilisez loadXMLDoc() pour charger "books.xml" dans xmlDoc
Obtenez les nœuds enfants de l'élément racine
Vérifiez le type de nœud de chaque nœud enfant. Si le type de nœud est "1", il s'agit d'un nœud d'élément
S'il s'agit d'un nœud d'élément, le nom du nœud est affiché
Relations entre les nœuds de navigation
Le code suivant parcourt l'arborescence des nœuds à l'aide des relations entre les nœuds :
Instance
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> 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) {//Process only element nodes (type 1) document.write(y.nodeName + "<br>"); } y=y.nextSibling; } </script> </body> </html>
Exécuter l'instance»
Cliquez sur le bouton "Exécuter l'exemple" pour afficher l'exemple en ligne
Utilisez loadXMLDoc() pour charger "books.xml" dans xmlDoc
Obtenir le nœud enfant du premier élément du livre
Définir la variable "y" sur le premier nœud enfant du premier élément du livre
Pour chaque nœud enfant (le premier nœud enfant commence par "y"), vérifiez le type de nœud, si le type de nœud est "1", c'est un nœud élément
S'il s'agit d'un nœud d'élément, affichez le nom du nœud
Définissez la variable "y" sur le nœud frère suivant et exécutez à nouveau la boucle