XML DOM besøg knudepunkter
- Forrige side DOM egenskaber og metoder
- Næste side DOM node information
Gennem DOM, kan du få adgang til hver node i et XML-dokument.
Example
Nedenstående eksempel bruger en XML-fil books.xml.
Funktion loadXMLDoc(),beliggende i ekstern JavaScript, bruges til at indlæse XML-filer.
- Gennemgå listen af noder ved hjælp af indekset
- Dette eksempel bruger getElementsByTagname() metoden til at få fat i det tredje <title> element i "books.xml".
- Brug af length egenskaben til at gennemgå noder
- Dette eksempel bruger length egenskaben til at gennemgå alle <title> elementer i "books.xml".
- Se elementets nodetype
- Dette eksempel bruger nodeType egenskaben til at få fat i nodetypen for rod-elementet i "books.xml".
- Gennemgå elementnoderne
- Dette eksempel bruger nodeType egenskaben til at håndtere elementnoderne i "books.xml".
- Brug af forholdet mellem noderne til at gennemgå elementnoderne
- Dette eksempel bruger nodeType egenskaben og nextSibling egenskaben til at håndtere elementnoderne i "books.xml".
Adgang til noder
Du kan få adgang til noder på tre måder:
- ved at bruge getElementsByTagName() metoden
- ved at bruge en løkke (gennemgå) nodetreet
- ved at bruge forholdet mellem noderne til at navigere i nodetreet
getElementsByTagName() metoden
getElementsByTagName() returner alle elementer med det angivne tagnavn.
grammatik
node.getElementsByTagName("tagname");
Example
The following example returns all <title> elements under x element:
x.getElementsByTagName("title");
Note that the example above only returns <title> elements under x. To return all <title> elements in the XML document, use:
xmlDoc.getElementsByTagName("title");
Here, xmlDoc is the document itself (document node).
DOM Node List
getElementsByTagName() method returns a node list (node list). A node list is an array of nodes.
The following code uses loadXMLDoc() "books.xml"Load xmlDoc into, then store a list of <title> nodes in the variable x:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
You can access the <title> elements in x by index. To access the third <title>, you can write:
y=x[2];
Note:The index starts at 0.
In later chapters of this tutorial, you will learn more about Node List.
DOM Node List Length
The length property defines the length of the node list (i.e., the number of nodes).
You can loop through a node list by using the length property:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Example explanation:
- Use loadXMLDoc() "books.xml"Load xmlDoc
- Get all <title> element nodes
- Output the value of the text node of each <title> element
Node Type
XML document's documentElement The attribute is the root node.
Attributes of the node are nodeName The attribute is the name of the node.
Attributes of the node are nodeType Attributes are the type of the node.
You will learn more about node attributes in the next section of this tutorial.
Traverse the node
The following code loops through the child nodes of the root node, which are also element nodes:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br />"); } }
Example explanation:
- Ved hjælp af loadXMLDoc() "books.xml"Indlæs i xmlDoc"
- Get the child nodes of the root element
- Check the node type of each child node. If the node type is "1", it is an element node
- Hvis det er et elementnode, så udskriv navnet på noden
Naviger gennem nodeforhold
Følgende kode navigerer gennem nodetreet ved hjælp af nodeforhold:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Process only element nodes (type 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- Ved hjælp af loadXMLDoc() "books.xml"Indlæs i xmlDoc"
- Få den første book elements undernode
- Sæt variablen "y" til den første book elements første undernode
- Kontroller hver undernodes nodetype, hvis nodetype er "1", så er det et elementnode
- Hvis det er et elementnode, så udskriv navnet på noden
- Sæt variablen "y" til den næste同级node og kør løkken igen
- Forrige side DOM egenskaber og metoder
- Næste side DOM node information