XML DOM solmujen saaminen

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.

Kokeile itse

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
  }

Kokeile itse

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.

Kokeile itse

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>";
  }
}

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan, että olet jo lataanut "books.xml"Lataa xmlDoc
  2. Hanki juurisolmun (xmlDoc) alijoukon solmut
  3. Tarkista jokaisen lapsisolun solutyypit. Jos solutyypit ovat "1" on elementti
  4. 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;
}

Kokeile itse

Esimerkki selityksestä:

  1. Oletetaan, että olet jo lataanut "books.xml"Lataa xmlDoc
  2. Hanki ensimmäisen book-elementin alijoukon elementit
  3. Aseta "y" muuttuja ensimmäisen book-elementin ensimmäiselle lapsisolulle
  4. Jokaiselle lapsisolulle (ensimmäisestä lapsisolusta "y" alkaa):
  5. Tarkista jokaisen lapsisolun solutyypit. Jos solutyypit ovat "1" niin se on elementti
  6. Jos solu on elementti, tulosta solun nimi
  7. Aseta "y" muuttuja asetetaan seuraavaan saman tason soluun ja suoritetaan silmukka uudelleen