Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

XML DOM - Accès aux nœuds


Avec le DOM, vous pouvez accéder à chaque nœud d'un document XML.


Essayez-le vous-même - Exemples

Les exemples ci-dessous utilisent le fichier XML books.xml .


Utiliser la méthode getElementsByTagName() pour obtenir le troisième élément <title> dans "books.xml"


Utilisez la propriété length pour parcourir tous les éléments <title> dans "books.xml"


Utilisez la propriété nodeType pour obtenir le type de nœud de l'élément racine dans "books.xml".


Utilisez la propriété nodeType pour traiter uniquement les nœuds d'élément dans "books.xml".


Utilisez la propriété nodeType et la propriété nextSibling pour traiter les nœuds d'élément dans "books.xml".

×

Entête


Accéder aux nœuds

Vous pouvez accéder à un nœud de trois manières :

1. En utilisant la méthode getElementsByTagName()

2. En parcourant (traversant) l'arborescence des nœuds.

3. En naviguant dans l'arborescence des nœuds, en utilisant les relations entre les nœuds.


La méthode getElementsByTagName()

getElementsByTagName() renvoie tous les éléments avec un nom de balise spécifié.

Syntaxe

node.getElementsByTagName("tagname");

Exemple

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

x.getElementsByTagName("title");

Notez que l'exemple ci-dessus ne renvoie que les éléments <title> sous le nœud x. Pour renvoyer tous les éléments <title> dans le document XML, utilisez :

xmlDoc.getElementsByTagName("title");

où xmlDoc est le document lui-même (nœud de document).



Liste des nœuds DOM

La méthode getElementsByTagName() renvoie une liste de nœuds. Une liste de nœuds est un tableau de nœuds.

x = xmlDoc.getElementsByTagName("title");

Les éléments <title> de x sont accessibles par numéro d'index. Pour accéder au troisième <title> vous pouvez écrire ::

y = x[2];

Remarque : L'indice commence à 0.

Vous en apprendrez plus sur les listes de nœuds dans un chapitre ultérieur de ce didacticiel.


Longueur de la liste des nœuds DOM

La propriété length définit la longueur d'une liste de nœuds (le nombre de nœuds).

Vous pouvez parcourir une liste de nœuds en utilisant la propriété length :

Exemple

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

Types de nœuds

La propriété documentElement du document XML est le nœud racine.

La propriété nodeName d'un nœud est le nom du nœud.

La propriété nodeType d'un 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 didacticiel.


Nœuds traversants

Le code suivant parcourt les nœuds enfants, qui sont également des nœuds d'élément, du nœud racine :

Exemple

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Exemple expliqué :

  1. Supposons que vous ayez chargé " books.xml " dans xmlDoc
  2. Obtenir les nœuds enfants de l'élément racine (xmlDoc)
  3. Pour chaque nœud enfant, vérifiez le type de nœud. Si le type de nœud est "1", il s'agit d'un nœud d'élément
  4. Afficher le nom du nœud s'il s'agit d'un nœud d'élément

Naviguer dans les relations de nœud

Le code suivant parcourt l'arborescence des nœuds à l'aide des relations de nœud :

Exemple

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Exemple expliqué :

  1. Supposons que vous ayez chargé " books.xml " dans xmlDoc
  2. Obtenir les nœuds enfants du premier élément du livre
  3. Définissez la variable "y" comme étant le premier nœud enfant du premier élément du livre
  4. Pour chaque nœud enfant (en commençant par le premier nœud enfant "y") :
  5. Vérifiez le type de nœud. Si le type de nœud est "1", il s'agit d'un nœud d'élément
  6. Afficher le nom du nœud s'il s'agit d'un nœud d'élément
  7. Définissez la variable "y" comme étant le nœud frère suivant et exécutez à nouveau la boucle