Tutoriel XML DO...login
Tutoriel XML DOM
auteur:php.cn  temps de mise à jour:2022-04-13 15:27:56

Accès au DOM


XML DOM - Nœuds d'accès


Le DOM vous donne accès à chaque nœud d'un document XML.



tryitimg.gif 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

noeud.getElementsByTagName("tagname");

Instance

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

x.getElementsByTagName("title");

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 :

xmlDoc.getElementsByTagName("title");

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");

x=xmlDoc.getElementsByTagName("title");


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 :

  1. Utilisez loadXMLDoc() pour charger " books.xml" dans xmlDoc

  2. Obtenir tous les nœuds d'éléments <title>

  3. 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

nodeName

du nœud est le nom du nœud. L'attribut

nodeType

du 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 :

  1. Utilisez loadXMLDoc() pour charger "books.xml" dans xmlDoc

  2. Obtenez les nœuds enfants de l'élément racine

  3. 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

  4. 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

  1. Utilisez loadXMLDoc() pour charger "books.xml" dans xmlDoc

  2. Obtenir le nœud enfant du premier élément du livre

  3. Définir la variable "y" sur le premier nœud enfant du premier élément du livre

  4. 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

  5. S'il s'agit d'un nœud d'élément, affichez le nom du nœud

  6. Définissez la variable "y" sur le nœud frère suivant et exécutez à nouveau la boucle