XML DOM tillgång till noder
- Föregående sida DOM noder
- Nästa sida DOM nodinformation
Genom DOM kan du komma åt varje nod i ett XML-dokument.
Nodåtkomst
Du kan komma åt noder på tre sätt:
- Genom att använda getElementsByTagName() metoden
- Genom att använda loopar (genomgångar) av nodträdet
- Genom att använda relationer mellan noder att navigera i nodträdet
getElementsByTagName() metod
getElementsByTagName()
Returnerar alla element med angiven taggnamn.
Syntaks
node.getElementsByTagName("tagname");
Exempel
I följande exempel returneras alla <title>-element under x-elementet:
x.getElementsByTagName("title");
Observera att det ovanstående exempel endast returnerar <title>-element under x-noden. Om du vill returnera alla <title>-element i XML-dokumentet, använd:
xmlDoc.getElementsByTagName("title");
HärxmlDoc
är dokumentet självt (dokumentnoden).
DOM nodlista
getElementsByTagName()
Metoden returnerar en nodlista (nodlist). Nodlistan är en array av noder.
x = xmlDoc.getElementsByTagName("title");
Du kan komma åt <title>-elementen i x genom att använda indexnummer. Om du vill komma åt tredje <title>, kan du skriva så här:
y = x[2];
Kommentar:Index börjar vid 0.
DOM-nodlistlängd
length
Attribut för att definiera längden på nodlistan (nodantal).
Du kan använda length
Attribut för att loopa igenom nodlistan:
Exempel
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { // Här kan du skriva kod för att hantera varje nod }
Nodtyp
Noder i XML-dokumentet documentElement
Attribut är rodnoden.
Attribut är nodens nodeName
Attribut är nodens namn.
Attribut är nodens nodeType
Attribut är nodens typ.
Du kommer att lära dig mer om nodattribut i nästa kapitel i denna handledning.
Loopa noder
Följande kod loopar igenom rodnodens undernoder (också elementnoder):
Exempel
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Behandla endast elementnoder (typ 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Exempel förklaring:
- Anta att du redan har laddat "books.xml"Ladda till
xmlDoc
- Hämta undernoderna för rodnoden (xmlDoc)
- Kontrollera varje undernods nodtyp. Om nodtypen är "
1
" är en elementnod - Om det är ett element, skriv ut nodnamnet
Navigera nodrelationer
Följande kod navigerar genom nodrelationer i nodträdet:
Exempel
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Behandla endast elementnoder (typ 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Exempel förklaring:
- Anta att du redan har laddat "books.xml"Ladda till
xmlDoc
- Hämta undernoderna för den första "book"-elementet
- Sätt "y" variabeln till den första book-elementets första undernod
- För varje undernod (från den första undernoden "
y
" (starta): - Kontrollera varje undernods nodtyp. Om nodtypen är "
1
" är det en elementnod - Om det är en elementnod, skriv ut nodens namn
- Sätt "
y
" Variabeln sätts till nästa jämlik nod och loopen körs igen
- Föregående sida DOM noder
- Nästa sida DOM nodinformation