XML DOM solmujen saaminen
- Edellinen sivu DOM-solut
- Seuraava sivu DOM-solun tiedot
DOM:n avulla voit tarkastella kaikkia XML-dokumentin solmuja.
Solmun tarkastelu
Voit tarkastella solmuja kolmella tavalla:
- Käyttämällä getElementsByTagName() -menetelmää
- Solmuhierarkian läpikäymisen (verkkojen) avulla
- Navigoimalla solmuhierarkiassa solmujen välisissä suhteiden avulla
getElementsByTagName() -menetelmä
getElementsByTagName()
Palauttaa kaikki elementit, joilla on määritelty tietty elementinimi.
Syntaksi
node.getElementsByTagName("tagname");
Esimerkki
Seuraavassa esimerkissä palautetaan kaikki x solmun alla olevat <title>-elementit:
x.getElementsByTagName("title");
Huomaa, että yllä oleva esimerkki palauttaa vain x solmun alla olevat <title>-elementit. Jos haluat palauttaa kaikki <title>-elementit XML-dokumentista, käytä:
xmlDoc.getElementsByTagName("title");
TässäxmlDoc
se on dokumentti itse (dokumentti solmu).
DOM solmu lista
getElementsByTagName()
Metodi palauttaa solmujen luettelon (solmujen luettelo). Solmujen luettelo on solmujen taulukko.
x = xmlDoc.getElementsByTagName("title");
Voit käyttää indeksinumeroa saadaksesi x:stä <title>-elementin. Jos haluat käyttää kolmatta <title>-elementtiä, voit kirjoittaa näin:
y = x[2];
Huomautus:Indeksoinnista alkaa 0.
DOM-solmujen luettelon pituus
length
Ominaisuutta määrittääksesi solmujen luettelon pituuden (solmujen määrä).
Voit käyttää length
Ominaisuus käytetään solmujen luettelon vierittämiseen:
Esimerkki
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i <x.length; i++) { //Tässä voit kirjoittaa koodia, joka käsittelee jokaisen solmun }
Solmutyyppi
XML-dokumentin documentElement
Ominaisuus on juurisolmu.
Ominaisuus on solmun nodeName
Ominaisuus on solmun nimi.
Ominaisuus on solmun nodeType
Ominaisuus on solmun tyyppi.
Opit lisää solmujen ominaisuuksista seuraavassa luvussa tässä kurssissa.
Vieritä solmuja
Seuraava koodi käy läpi juurisolmun alijoukon solmut (jotka ovat myös elementtejä):
Esimerkki
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i <x.length; i++) { //Käsittele vain elementtisolmuja (tyyppi 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Esimerkki selityksestä:
- Oletetaan, että olet jo lataanut "books.xml"Lataa
xmlDoc
- Hanki juurisolmun (xmlDoc) alijoukon solmut
- Tarkista jokaisen lapsisolun solutyypit. Jos solutyypit ovat "
1
" on elementti - Jos solmu on elementti, tulosta solmun nimi
Navigoi solmujen välillä
Seuraava koodi navigoi solmuverkossa solmujen välillä:
Esimerkki
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i <xlen; i++) { //Käsittele vain elementtieudot (tyyppi 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Esimerkki selityksestä:
- Oletetaan, että olet jo lataanut "books.xml"Lataa
xmlDoc
- Hanki ensimmäisen book-elementin alijoukon elementit
- Aseta "y" muuttuja ensimmäisen book-elementin ensimmäiselle lapsisolulle
- Jokaiselle lapsisolulle (ensimmäisestä lapsisolusta "
y
" alkaa): - Tarkista jokaisen lapsisolun solutyypit. Jos solutyypit ovat "
1
" niin se on elementti - Jos solu on elementti, tulosta solun nimi
- Aseta "
y
" muuttuja asetetaan seuraavaan saman tason soluun ja suoritetaan silmukka uudelleen
- Edellinen sivu DOM-solut
- Seuraava sivu DOM-solun tiedot