XML DOM tilgang til knuder
- Forrige side DOM Node
- Næste side DOM Node Information
Gennem DOM kan du få adgang til hver node i XML-dokumentet.
Adgang til node
Du kan få adgang til noder på tre måder:
- ved at bruge getElementsByTagName() metoden
- ved at gennemgå nodetræet
- ved at navigere i nodetræet ved hjælp af forholdet mellem noderne
getElementsByTagName() metoden
getElementsByTagName()
returnerer alle elementer med den specificerede tagnavn.
Syntaks
node.getElementsByTagName("tagname");
Eksempel
Følgende eksempel returnerer alle <title>-elementer under x-knuden:
x.getElementsByTagName("title");
Bemærk venligst, de ovenstående eksempler returnerer kun <title>-elementer under x-knuden. For at returnere alle <title>-elementer i XML-dokumentet, brug venligst:
xmlDoc.getElementsByTagName("title");
her,xmlDoc
er dokumentet selv (dokumentknuden).
DOM node liste
getElementsByTagName()
metoden returnerer en nodeliste (node list). Nodelisten er en array af knuder.
x = xmlDoc.getElementsByTagName("title");
Du kan få adgang til <title>-elementet i x ved hjælp af indeksnummer. Hvis du vil få adgang til tredje <title>, kan du skrive:
y = x[2];
Bemærk:indekset starter fra 0.
DOM-nodeliste længde
length
egenskab til at definere længden af nodelisterne (nodetal)
Du kan bruge length
egenskab for at gennemgå nodelisterne:
Eksempel
var x = xmlDoc.getElementsByTagName("title"); for (i = 0; i < x.length; i++) { // Her kan du skrive kode til at behandle hver node }
nodetype
XML-dokumentets documentElement
egenskab er roden.
egenskab er nodens nodeName
egenskab er nodens navn.
egenskab er nodens nodeType
Egenskaber er nodens type.
Du vil lære mere om nodens egenskaber i det næste kapitel af denne vejledning.
Gennemgå knuder
Følgende kode gennemgår rodenes underknuder (som også er elementknuder):
Eksempel
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Kun behandle elementknuder (type 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Eksempel forklaring:
- Antag, at du allerede har indlæst "books.xml"Indlæse til
xmlDoc
- Få roden (xmlDoc) af underknuder
- Kontroller hver undernodes nodetype. Hvis nodetypen er "
1
"er et element - Hvis det er et element, udskriv nodens navn
Naviger noderelationer
Følgende kode navigerer gennem nodetreet ved hjælp af noders relationer:
Eksempel
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Kun behandle elementknuder (type 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Eksempel forklaring:
- Antag, at du allerede har indlæst "books.xml"Indlæse til
xmlDoc
- Hent efterkoden til den første book-element
- Sæt "y" variabel til den første book elements første undernode
- For hver undernode (fra den første undernode "
y
" Start): - Kontroller hver undernodes nodetype. Hvis nodetypen er "
1
" er det et elementnode - Er det et elementnode, så udskriv navnet på noden
- Sæt "
y
" Variabel sættes til næste ligestillede node, og cyklen køres igen
- Forrige side DOM Node
- Næste side DOM Node Information