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.