Metodo replaceChild() XML DOM

Definizione e uso

Il metodo replaceChild() sostituisce un nodo figlio con un altro nodo.

Se il metodo ha successo, restituisce il nodo sostituito, altrimenti restituisce null.

Sintassi:

elementNode.replaceChild(new_node,old_node)
Parametro Descrizione
new_node Obbligatorio. Specifica il nuovo nodo.
old_node Obbligatorio. Specifica il nodo figlio da sostituire.

Esempio

In tutti gli esempi, utilizzeremo il file XML books.xml,e la funzione JavaScript loadXMLDoc()

Il seguente frammento di codice sostituisce il primo elemento <title> dell'elemento <book> del file "books.xml":

//controlla se il primo nodo figlio è un nodo elemento
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];
//crea un elemento di titolo e un nodo di testo
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Cene Familiari di Giada");
//aggiungi il nodo di testo al nodo del titolo,
newNode.appendChild(newText);
//Sostituisci l'ultimo nodo con il nuovo nodo
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 />");
}

Output:

Cene di famiglia di Giada
Harry Potter
XQuery Kick Start
Learning XML

Nota:Internet Explorer ignora i nodi di testo vuoti generati tra i nodi (ad esempio, i simboli di nuova riga), mentre Mozilla non lo fa. Pertanto, in questo esempio, abbiamo creato una funzione per creare i sottoelementi corretti.

Suggerimento:Per ulteriori informazioni sulle differenze tra Internet Explorer e Mozilla, visita la guida XML DOM su CodeW3C.com Browser DOM Questa sezione.