Remplacement des nœuds XML DOM

La méthode replaceChild() remplace le nœud spécifié.

L'attribut nodeValue remplace le texte du nœud de texte.

Exemple

Dans l'exemple suivant, le fichier XML est utilisé : books.xml.

Fonction loadXMLDoc(),situé dans le JavaScript externe, utilisé pour charger le fichier XML.

Remplacer un nœud d'élément
Dans cet exemple, replaceChild() est utilisé pour remplacer le premier nœud <book>.
Remplacer les données des nœuds de texte
Dans cet exemple, l'attribut nodeValue est utilisé pour remplacer les données des nœuds de texte.

Remplacer un nœud d'élément

La méthode replaceChild() est utilisée pour remplacer les nœuds.

Le fragment de code suivant remplace le premier élément <book> :

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
//Créer un élément book, un élément title et un nœud de texte.
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Hello World");
//Ajouter un nœud de texte au nœud title.
newTitle.appendChild(newText);
//Ajouter un nœud title au nœud book.
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0];
//Remplacer le premier nœud book par ce nouveau nœud.
x.replaceChild(newNode, y);

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettez "books.xmlcharger xmlDoc
  • Créer un nouveau nœud d'élément <book>.
  • Créer un nouveau nœud d'élément <title>.
  • Créer un nouveau nœud de texte avec le texte "Hello World".
  • Ajouter ce nouveau nœud de texte à la nouvelle élément <title>.
  • Ajouter ce nouveau nœud <title> à la nouvelle élément <book>.
  • Remplacer le premier nœud <book> par un nouveau nœud <book>.

TIY

Remplacer les données des nœuds de texte

La méthode replaceData() est utilisée pour remplacer les données des nœuds de texte.

La méthode replaceData() a trois paramètres :

  • offset - Où commencer à remplacer les caractères. La valeur d'offset commence à 0.
  • length - Le nombre de caractères à remplacer
  • string - La chaîne à insérer
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"hello");

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettez "books.xmlcharger xmlDoc
  • Obtenir le texte du premier nœud <title>
  • Utilisez la méthode replaceData pour remplacer les 8 premiers caractères du texte du nœud par "hello"

TIY

Utilisez la propriété nodeValue

C'est plus facile de remplacer les données du nœud de texte en utilisant la propriété nodeValue.

Le fragment de code suivant remplacera le texte du premier nœud <title> par "Easy Italian" :

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

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettez "books.xmlcharger xmlDoc
  • Obtenir le texte du premier nœud <title>
  • Utilisez la propriété nodeValue pour modifier le texte de ce nœud de texte

TIY

Vous pouvez dans Changement de nœud Lisez plus à ce sujet dans cette section sur la modification de la valeur du nœud.