XML DOM replaceChild()-metodi
Määritelmä ja käyttö
replaceChild()-metodi korvaa yhden lapsisolmun toisella.
Onnistuessaan, tämä metodi palauttaa korvattavan solmun, epäonnistuessaan null.
syntaksi:
elementNode.replaceChild(new_node,old_node)
parametrit | kuvaus |
---|---|
new_node | Välttämätön. Määritä uusi solmu. |
old_node | Välttämätön. Määritä korvattava alinode. |
Esimerkki
Kaikissa esimerkeissä käytämme XML-tiedostoa books.xmlja JavaScript-funktio loadXMLDoc()。
Seuraava koodinpätkä korvaa "books.xml" -tiedoston ensimmäisen <book>-elementin ensimmäisen <title>-elementin:
//tarkista, onko ensimmäinen lapsinodee elementinode
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
palauta x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//luo otsikelementti ja tekstinodee
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//lisää tekstinodee tittelinodee
newNode.appendChild(newText);
//korvaa viimeinen solmu uudella solmulle
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 />");
}
Tulostus:
Giada's Family Dinners Harry Potter XQuery Kick Start Learning XML
Huomautus:Internet Explorer huomioi välit välillä olevat tyhjät tekstit (esim. rivinvaihtomerkit), mutta Mozilla ei tee niin. Siksi olemme luoneet funktion, joka luo oikeat lapsinodet.
Vinkki:Lisätietoja Internet Explorerin ja Mozillan selaimen välisistä eroista löydät CodeW3C.comin XML DOM-opasta DOM-selain Tämä luku.