Ajout de nœuds XML DOM

Exemple

L'exemple suivant utilise le fichier XML books.xml.

Fonction loadXMLDoc()Situé à l'extérieur du JavaScript, utilisé pour charger les fichiers XML.

Ajouter un nœud après le dernier sous-nœud
Dans cet exemple, la méthode appendChild() est utilisée pour ajouter un sous-nœud à un nœud existant.
Ajouter un nœud avant un sous-nœud spécifié
Dans cet exemple, la méthode insertBefore() est utilisée pour insérer un nœud avant un sous-nœud spécifié.
Ajouter une nouvelle propriété
Dans cet exemple, la méthode setAttribute() est utilisée pour ajouter une nouvelle propriété.
Ajouter des données à un nœud de texte
Dans cet exemple, la méthode insertData() est utilisée pour insérer des données dans un nœud de texte existant.

Ajouter un nœud - appendChild()

La méthode appendChild() ajoute un sous-nœud à un nœud existant.

Le nouveau nœud sera ajouté (ajouté) après tout sous-nœud existant.

Remarque :Utilisez la méthode insertBefore() si la position du nœud est importante.

Le fragment de code suivant crée un élément (<edition>) et le ajoute après le dernier sous-nœud du premier élément <book> :

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Exemple d'explication :

  1. En utilisant loadXMLDoc() Ajouter "books.xmlCharger dans xmlDoc
  2. Créer un nouveau nœud <edition>.
  3. Ajouter ce nœud à la première élément <book>.

TIY

Boucler et ajouter un élément à tous les éléments <book> :TIY

Insérer un nœud - insertBefore()

La méthode insertBefore() est utilisée pour insérer un nœud avant un sous-nœud spécifié.

Cette méthode est très utile lorsque la position du nœud ajouté est importante.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

Exemple d'explication :

  1. En utilisant loadXMLDoc() Ajouter "books.xmlCharger dans xmlDoc
  2. Créer un nouveau nœud d'élément <book>.
  3. Insérer ce nœud avant le dernier élément <book>.

TIY

Si le second paramètre de insertBefore() est null, le nouveau nœud sera ajouté après le dernier sous-nœud existant.

x.insertBefore(newNode,null) et x.appendChild(newNode) Tous peuvent ajouter un nouveau sous-nœud à x.

Ajouter une nouvelle propriété

La méthode addAtribute() n'existe pas.

Si l'attribut n'existe pas, setAttribute() peut créer un nouvel attribut :

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

Exemple d'explication :

  1. En utilisant loadXMLDoc() Ajouter "books.xmlCharger dans xmlDoc
  2. Définir (créer) la valeur de l'attribut "edition" du premier élément <book> en "first"

TIY

Remarque :Si l'attribut existe déjà, la méthode setAttribute() remplacera la valeur existante.

Ajouter du texte au nœud de texte - insertData()

La méthode insertData() insère des données dans un nœud de texte existant.

La méthode insertData() a deux paramètres :

  • offset - Où commencer l'insertion de caractères (commence à 0)
  • string - Chaîne à insérer

Le fragment de code suivant ajoutera "Easy" au texte du premier nœud <title> du XML chargé :

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY