Metodo replaceChild() di XML DOM

Manuale di riferimento dell'oggetto Node

Definizione e uso

Il metodo replaceChild() può sostituire un nodo figlio con un altro.

Se il metodo di sostituzione è riuscito, questo metodo può restituire il nodo sostituito, altrimenti restituirà NULL.

Sintassi:

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

Suggerimenti e note

Nota:Internet Explorer ignora i nodi di testo vuoti generati tra i nodi (ad esempio, i simboli di newline), mentre Mozilla non lo fa. Pertanto, nell'esempio seguente, utilizzeremo una funzione per controllare il tipo di nodo del primo nodo figlio.

Il tipo di nodo dell'elemento è 1, quindi se il primo nodo figlio non è un nodo elemento, passerà al nodo successivo e continuerà a controllare se questo nodo è un nodo elemento. Il processo continuerà fino a trovare il primo nodo elemento figlio. Con questo metodo, possiamo ottenere il metodo corretto in Internet Explorer e Mozilla.

Suggerimento:Per ulteriori informazioni sulle differenze tra XML DOM di IE e Mozilla, visitare il nostro Browser DOM Capitoli.

Esempio

In tutti gli esempi, utilizzeremo il file XML books.xmle le funzioni JavaScript loadXMLDoc()

Il seguente frammento di codice può sostituire l'elemento <title> del primo <book<:

//controlla se il primo nodo figlio è un nodo elemento
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//crea un elemento di testo e un nodo di testo
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Cene di famiglia di Giada");
//add the text node to the title node,
newNode.appendChild(newText);
//replace the first child node with the new node
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//output all titles
var 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

Manuale di riferimento dell'oggetto Node