XML DOM solmun lisääminen

Esimerkki

Alla olevassa esimerkissä käytetään XML-tiedostoa books.xml.

Funktio loadXMLDoc()Sijaitsee ulkoisessa JavaScriptissä, käytetään XML-tiedostojen lataamiseen.

Lisää solmu viimeisen alisolmun jälkeen
Tässä esimerkissä käytetään appendChild() metodia alisolmun lisäämiseen olemassa olevaan solmuun.
Lisää solmu määritettyyn alisolmun eteen
Tässä esimerkissä käytetään insertBefore() metodia solmun lisäämiseen määritettyyn alisolmun eteen.
Lisää uusi ominaisuus
Tässä esimerkissä käytetään setAttribute() metodia uuden ominaisuuden lisäämiseen.
Lisää data tekstisolmuun
Tässä esimerkissä käytetään insertData() metodia datan lisäämiseen olemassa olevaan tekstisolmuun.

Solmun lisääminen - appendChild()

appendChild() metodi lisää alisolmun olemassa olevaan solmuun.

Uusi solmu lisätään (lisätään) mihin tahansa olemassa olevaan alisolmuun.

Huomautus:Jos solmun sijainti on tärkeä, käytä insertBefore() metodia.

Seuraava koodipala luo elementin (<!DOCTYPE html>) ja lisää sen ensimmäisen <book> elementin viimeisen alisolmun jälkeen:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Esimerkki selityksestä:

  1. Käyttämällä loadXMLDoc() Lisää "books.xmlLataa xmlDoc:iin
  2. Luo uusi solmu <edition>
  3. Lisää tämä solmu ensimmäiseen <book> elementtiin

TIY

Toista ja lisää elementti kaikkiin <book> elementteihin:TIY

Solmun lisääminen - insertBefore()

insertBefore() metodi käytetään solmun lisäämiseen määritetyn alisolmun eteen.

Kun solmun sijainti on tärkeä, tämä metodi on hyödyllinen.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode, y);

Esimerkki selityksestä:

  1. Käyttämällä loadXMLDoc() Lisää "books.xmlLataa xmlDoc:iin
  2. Luo uusi elementtisolmu <book>
  3. Lisää tämä solmu viimeisen <book> elementtisolmun eteen

TIY

Jos insertBefore() toinen parametri on null, uusi solmu lisätään viimeiseen olemassa olevaan alisolmuun.

x.insertBefore(newNode, null) ja x.appendChild(newNode) Voit lisätä uuden alisolmun x:hen.

Lisää uusi ominaisuus

addAtribute() metodi ei ole olemassa.

Jos ominaisuus ei ole olemassa, setAttribute() voi luoda uuden ominaisuuden:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

Esimerkki selityksestä:

  1. Käyttämällä loadXMLDoc() Lisää "books.xmlLataa xmlDoc:iin
  2. Aseta ensimmäisen <book>-elementin "edition"-ominaisuuden arvo (luodaan) "first"

TIY

Huomautus:Jos ominaisuus on jo olemassa, setAttribute() -menetelmä korvaa olemassa olevan arvon.

Tekstinodeihin lisääminen - insertData()

insertData() -menetelmä lisää tietoja olemassa olevaan tekstinodeihin.

insertData() -menetelmällä on kaksi parametria:

  • offset - missä aloittaa lisääminen merkkien perusteella (alkaa 0:sta)
  • string - Lisättävä merkkijono

Seuraava koodikappale lisää "Easy"-sanan ladatun XML:n ensimmäisen <title>-elementin tekstinodeihin:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY