Méthode appendChild() XML DOM

Manuel de référence de l'objet Node

Définition et utilisation

La méthode appendChild() peut ajouter un nouveau noeud enfant à la liste des enfants du noeud.

Cette méthode peut retourner ce nouveau noeud enfant.

Syntaxe :

appendChild(newchild)
Paramètre Description
newchild Noeud ajouté

Retour de la valeur

Noeud ajouté.

Description

Cette méthode ajoute le noeud newchild au document, le rendant le dernier enfant du noeud courant.

Si newchild existe déjà dans l'arbre du document, il est supprimé de l'arbre du document et reinséré à sa nouvelle position. Si newchild est un noeud DocumentFragment, il n'est pas inséré directement, mais ses enfants sont insérés à la fin de l'array childNodes[] du noeud courant.

Attention, un noeud provenant d'un document (ou créé par un document) ne peut pas être inséré dans un autre document. Autrement dit, la propriété ownerDocument de newchild doit être la même que la propriété ownerDocument du noeud courant.

Exemple

La fonction suivante insère un nouveau paragraphe à la fin du document :

function appendMessage (message) {
  var pElement = document.createElement("p");
  var messageNode = document.createTextNode(message);
  pElement.appendChild(messageNode);
  document.body.appendChild(pElement);
}

Exemple

Dans tous les exemples, nous utiliserons le fichier XML books.xmlainsi que la fonction JavaScript loadXMLDoc()

Le code ci-dessous crée et ajoute un noeud à l'élément <book> premier, puis affiche tous les noeuds enfants de l'élément <book> premier :

xmlDoc=loadXMLDoc("books.xml");
var newel=xmlDoc.createElement('edition');
var newtext=xmlDoc.createTextNode('Premier');
newel.appendChild(newtext);
var x=xmlDoc.getElementsByTagName('book')[0];
x.appendChild(newel);;
var y=x.childNodes;
for (var i=0;i<y.length;i++)
  { 
  //Afficher uniquement les noeuds d'élément
  if (y[i].nodeType==1)
    { 
    document.write(y[i].nodeName);
    document.write("<br />");
    } 
  }

Sortie :

title
author
year
price
edition

Remarque :Internet Explorer ignore les noeuds de texte blanc générés entre les noeuds (par exemple, les symboles d'entée de ligne), tandis que Mozilla ne le fait pas. Par conséquent, dans les exemples ci-dessous, nous ne traitons que les noeuds d'élément (les noeuds d'élément nodeType=1).

Astuce :Pour plus d'informations sur les différences entre XML DOM entre IE et Mozilla navigateurs, veuillez visiter notre Navigateur DOM Chapitre.

Manuel de référence de l'objet Node