XML DOM replaceChild()-metodi
Määritelmä ja käyttötapa
replaceChild()-metodi voi korvata yhden lapsisolmun toisella.
Jos korvaus onnistuu, tämä metodi palauttaa korvattavan solmun, jos korvaus epäonnistuu, palauttaa NULL.
syntaksi:
nodeObject.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 solmu. |
Vinkit ja huomautukset
Huomautus:Internet Explorer huomioi välitilat luodut tyhjät tekstipisteet (esim. rivinvaihtomerkit), mutta Mozilla ei tee niin. Siksi seuraavissa esimerkeissä käytämme funktiota ensimmäisen lapsipisteen solmun tyyppien tarkistamiseen.
Elementtipisteen solmun tyyppi on 1, joten jos ensimmäinen lapsipiste ei ole elementtipiste, se siirtyy seuraavaan solmuun ja jatkaa tarkistusta, onko tämä solmu elementtipiste. Tämä prosessi jatkuu, kunnes ensimmäinen elementtipiste löytyy. Tällä tavalla voimme saada oikean metodin Internet Explorerissä ja Mozillassa.
Vinkki:Lisätietoja IE ja Mozilla-selaimien XML DOM:n välisistä eroista löydät DOM-selain luku
esimerkki
Kaikissa esimerkeissä käytämme XML-tiedostoa books.xmlja JavaScript-funktio loadXMLDoc()。
Seuraava koodipala voi korvata ensimmäisen <book< elementin <title>-elementin:
//tarkista, onko ensimmäinen lapsipiste elementtipiste
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
palauta x;
}
xmlDoc=loadXMLDoc("books.xml");
//luo a otsikoelementti ja tekstipiste
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Giada's Family Dinners");
//lisää tekstisolmu otsikkosolmulle,
newNode.appendChild(newText);
//korvaa ensimmäinen lapsisolmu uudella solmulla
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//tulosta kaikki otsikot
var 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