XML DOM Node List

Solutili palautetaan getElementsByTagName()-menetelmällä ja childNodes-ominaisuuksilla.

Esimerkki

Seuraavassa esimerkissä käytetään XML-tiedostoa books.xml.

Funktiot loadXMLDoc()Sijaitsee ulkoisessa JavaScriptissä, käytetään XML-tiedoston lataamiseen.

Hanki ensimmäisen <title>-elementin teksti
Tässä esimerkissä käytetään getElementsByTagName()-menetelmää saadaksesi "books.xml"-tiedostosta ensimmäisen <title>-elementin tekstin.
Silmukoi soluja käyttämällä length-ominaisuutta
Tässä esimerkissä käytetään solutilia ja length-ominaisuutta silmukoidakseen "books.xml"-tiedostossa olevat kaikki <title>-elementit.
Hanki elementin ominaisuudet
Tässä esimerkissä käytetään ominaisuusluetteloa saadakseen "books.xml"-tiedostosta ensimmäisen <title>-elementin ominaisuudet.

DOM Node List

Kun käytät tällaisia ominaisuuksia tai menetelmiä kuin childNodes tai getElementsByTagName(), palautetaan NodeList-objekti.

NodeList-objekti edustaa solujen luetteloa XML:n samassa järjestyksessä.

Käytä alusta 0 olevaa indeksiä tavoittaaksesi solutilin soluja.

Seuraava kuva esittää "}}books.xml"Palauta <title>-elementin solmun lista:

DOM solmu lista

Seuraava koodipala käyttää loadXMLDoc() "Lataa "books.xml" xmlDoc:iin ja palauta "books.xml"Palauta title-elementin solmun lista:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Yllä olevan lauseen suorittamisen jälkeen x on NodeList-objekti.

Seuraava koodipalikka palauttaa ensimmäisen <title>-elementin tekstin solmun listasta x:

txt=x[0].childNodes[0].nodeValue;

Yllä olevan lauseen suorittamisen jälkeen txt = "Everyday Italian".

TIY

Node List Length

NodeList-objekti pitää aina päivitettynä. Jos elementti poistetaan tai lisätään, lista päivittyy automaattisesti.

NodeList-objektin length-ominaisuus on listan solmujen määrä.

Seuraava koodipala käyttää loadXMLDoc() Aseta "books.xml"Lataa xmlDoc, ja palauta "books.xml" -tiedostossa olevien <title>-elementtien määrä:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

Yllä olevan lauseen suorittamisen jälkeen x = 4.

Solmun listan pituus voidaan käyttää käydäksesi läpi listan kaikki elementit.

Seuraava koodipalikka käyttää length-ominaisuutta käydäksesi läpi <title>-elementtien listan:

xmlDoc=loadXMLDoc("books.xml");
//x-muuttuja sisältää solmun listan
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Tulostus:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Esimerkki selityksestä:

  • Käyttämällä loadXMLDoc() Aseta "books.xml"Lataa xmlDoc
  • Aseta x-muuttuja tallentamaan kaikkien title-elementtien solmun listan
  • Luo arvo kaikista <title>-elementtien tekstisolmuista

TIY

DOM Attribute List (Named Node Map)

Elementin solmun attributes-ominaisuus palauttaa ominaisuussolmun listan.

Tämä kutsutaan nimetyksi solmun kartaksi, ja se on solmun listan kaltainen, paitsi että siinä on joitakin eroja metodeissa ja ominaisuuksissa.

Ominaisuuslista pitää aina päivitettynä. Jos ominaisuus poistetaan tai lisätään, lista päivittyy automaattisesti.

Seuraava koodipala käyttää loadXMLDoc() Aseta "books.xml" xmlDoc-muuttujaan, ja tulosta "books.xml"

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Yllä olevan koodin suorittamisen jälkeen x.length on ominaispiirteiden määrä, ja sitä voidaan käyttää x.getNamedItem() -menetelmällä palauttamaan ominaispiirteiden solmut.

Seuraava koodipala näyttää yhden book-elementin "category"-ominaisuuden arvon sekä sen ominaispiirteiden määrän:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Tulostus:

children
1

Esimerkki selityksestä:

  • Käyttämällä loadXMLDoc() Aseta "books.xml"
  • Aseta x-muuttuja ensimmäisen <book>-elementin kaikkien ominaispiirteiden luetteloksi
  • Tulosta "category"-ominaisuuden arvo
  • Tulosta ominaispiirteiden luettelon pituus

TIY