Méthode replaceChild() XML DOM

Définition et utilisation

La méthode replaceChild() remplace un sous-nœud par un autre nœud.

Si le succès, cette méthode retourne le nœud remplacé, sinon retourne null.

Syntaxe :

elementNode.replaceChild(new_node,old_node)
Paramètres Description
new_node Obligatoire. Définir le nouveau nœud.
old_node Obligatoire. Définir le sous-nœud à remplacer.

Exemple

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

Le fragment de code suivant remplace le premier élément <title> de l'élément <book> du fichier "books.xml":

//vérifier si le premier nœud enfant est un nœud élément
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//créer un élément de titre et un nœud de texte
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Repas de famille de Giada");
//ajouter le nœud de texte au nœud de titre,
newNode.appendChild(newText);
//Remplacer le dernier nœud par le nouveau nœud
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}

Sortie :

Cinées familiales de Giada
Harry Potter
XQuery Kick Start
Learning XML

Remarque :Internet Explorer ignore les nœuds de texte blanc générés entre les nœuds (par exemple, les signes de retour à la ligne), tandis que Mozilla ne le fait pas. Par conséquent, dans l'exemple ci-dessus, nous avons créé une fonction pour créer des sous-éléments corrects.

Astuce :Pour plus d'informations sur les différences entre Internet Explorer et Mozilla, veuillez consulter le tutoriel XML DOM sur CodeW3C.com Navigateur DOM Cette section.