XML DOM replaceChild()-metodi

Node-objektin viittausoppaasti

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

Node-objektin viittausoppaasti