XML DOM - Toegang tot nodusse
Met die DOM het u toegang tot elke nodus in 'n XML-dokument.
Probeer dit self - voorbeelde
Die voorbeelde hieronder gebruik die XML-lêer books.xml .
gebruik Gebruik die getElementsByTagName() metode om die derde <title> element in "books.xml" te kry
Gebruik die length-eienskap om deur alle <title>-elemente in "books.xml" te lus
Gebruik die nodeType-eienskap om nodustipe van die wortelelement in "books.xml" te kry.
Gebruik die nodeType eienskap om slegs element nodusse in "books.xml" te verwerk.
Gebruik die nodeType-eienskap en die nextSibling-eienskap om elementnodusse in "books.xml" te verwerk.
Toegang tot nodusse
Jy kan op drie maniere toegang tot 'n nodus kry:
1. Deur die getElementsByTagName() metode te gebruik
2. Deur deur die nodesboom te loop (loop).
3. Deur die nodusboom te navigeer deur die nodusverhoudings te gebruik.
Die getElementsByTagName()-metode
getElementsByTagName() gee alle elemente met 'n gespesifiseerde merkernaam terug.
Sintaksis
node.getElementsByTagName("tagname");
Voorbeeld
Die volgende voorbeeld gee alle <title>-elemente onder die x-element terug:
x.getElementsByTagName("title");
Let daarop dat die voorbeeld hierbo slegs <title>-elemente onder die x-knoop terugstuur. Om alle <title>-elemente in die XML-dokument terug te gee, gebruik:
xmlDoc.getElementsByTagName("title");
waar xmlDoc die dokument self (dokumentnodus) is.
DOM Node Lys
Die getElementsByTagName() metode gee 'n noduslys terug. 'n Noduslys is 'n reeks nodusse.
x = xmlDoc.getElementsByTagName("title");
Die <title> elemente in x kan verkry word deur indeksnommer. Om toegang tot die derde <title> te kry, kan jy skryf::
y = x[2];
Let wel: Die indeks begin by 0.
Jy sal meer leer oor noduslyste in 'n latere hoofstuk van hierdie tutoriaal.
DOM Node Lys Lengte
Die lengte-eienskap definieer die lengte van 'n noduslys (die aantal nodusse).
Jy kan deur 'n noduslys loop deur die lengte-eienskap te gebruik:
Voorbeeld
var
x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
//
do something for each node
}
Knooptipes
Die documentElement -eienskap van die XML-dokument is die wortelnodus.
Die nodeName- eienskap van 'n nodus is die naam van die nodus.
Die nodeType- eienskap van 'n nodus is die tipe nodus.
Jy sal meer leer oor die nodus eienskappe in die volgende hoofstuk van hierdie tutoriaal.
Knooppunte deurkruis
Die volgende kode loop deur die kind nodusse, wat ook element nodusse is, van die wortel node:
Voorbeeld
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++)
{
// Process only element nodes (type 1)
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
Voorbeeld verduidelik:
- Gestel jy het " books.xml " in xmlDoc gelaai
- Kry die kind nodusse van die wortel element (xmlDoc)
- Kontroleer die tipe nodus vir elke kindnodus. As die nodus tipe "1" is, is dit 'n element node
- Voer die naam van die nodus uit as dit 'n elementnodus is
Navigeer node-verhoudings
Die volgende kode navigeer die nodusboom deur die nodusverhoudings te gebruik:
Voorbeeld
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++)
{
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
Voorbeeld verduidelik:
- Gestel jy het " books.xml "in xmlDoc gelaai
- Kry die kind nodusse van die eerste boek element
- Stel die "y" veranderlike om die eerste kind node van die eerste boek element te wees
- Vir elke kindernodus (begin met die eerste kindernodus "y"):
- Gaan die nodus tipe na. As die nodus tipe "1" is, is dit 'n element node
- Voer die naam van die nodus uit as dit 'n elementnodus is
- Stel die "y"-veranderlike om die volgende broer of suster te wees, en hardloop weer deur die lus