XML DOM - Nœud de navigation


Vous pouvez naviguer entre les nœuds en utilisant les relations entre les nœuds.


Navigation dans les nœuds DOM

L'accès aux nœuds dans l'arborescence de nœuds via les relations entre les nœuds est généralement appelé « navigation entre les nœuds ».

Dans le DOM XML, les relations entre nœuds sont définies comme des propriétés des nœuds :

  • parentNode
  • childNodes
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

L'image ci-dessous illustreUne partie de l'arborescence des nœuds, et illustre les relations entre les nœuds :

Node tree


DOM - Nœuds parents

Chaque nœud n'a qu'un seul nœud parent. Le code suivant navigue vers le nœud parent de <book> :

Exemple

xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);

Essayez-le vous-même »

Explication de l'exemple :

  1. UtilisationloadXMLDoc()put "" Chargement dans xmlDoc
  2. Obtenir le premier élément <book>
  3. Afficher le nom du nœud parent de "x"

Éviter les nœuds de texte vides

Firefox et certains autres navigateurs traitent les espaces vides ou les sauts de ligne comme des nœuds de texte, alors qu'Internet Explorer ne le fait pas.

Cela pose un problème lors de l'utilisation des propriétés suivantes : firstChild, lastChild, nextSibling, previousSibling.

Pour éviter de naviguer vers des nœuds de texte vides (espaces et sauts de ligne entre les nœuds d'éléments), nous utilisons une fonction pour vérifier le type de nœud :

function get_nextSibling(n)
{
  y=n.nextSibling;
  while (y.nodeType!=1)
  {
    y=y.nextSibling;
  }
  return y;
}

La fonction ci-dessus vous permet d'utiliser get_nextSibling(node) au lieu de la propriéténode.nextSibling.

Explication du code :

Le type de nœud d'élément est 1. Si un nœud frère n'est pas un nœud d'élément, passez au nœud suivant jusqu'à ce qu'un nœud d'élément soit trouvé. De cette façon, le même résultat peut être obtenu dans Internet Explorer et Firefox.


Obtenir le premier élément enfant

Le code suivant affiche le premier élément du premier <book> :

Exemple

<html> <head> <script src="loadxmldoc.js"> </script> <script>
//Vérifier si le premier nœud est un nœud d'élément function get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName);
</script> </body> </html>

Sortie :

title

Essayez-le vous-même »

Explication de l'exemple :

  1. UtilisationloadXMLDoc()put "" Chargement dans xmlDoc
  2. Utilisez la fonction get_firstChild sur le premier élément <book> pour obtenir le premier nœud enfant (qui est un nœud élément)
  3. Affichez le nom du nœud du premier nœud enfant (qui est un nœud élément)

实例s

Plus d’exemples


Cet exemple utilise la méthode lastChild() et une fonction personnalisée pour obtenir le dernier nœud enfant d’un nœud


Cet exemple utilise la méthode nextSibling() et une fonction personnalisée pour obtenir le nœud frère suivant d’un nœud


Cet exemple utilise la méthode previousSibling() et une fonction personnalisée pour obtenir le nœud frère précédent d’un nœud


autres extensions