XML DOM besøg knudepunkter

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:

  1. ved at bruge getElementsByTagName() metoden
  2. ved at bruge en løkke (gennemgå) nodetreet
  3. 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];

TIY

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:

  1. Use loadXMLDoc() "books.xml"Load xmlDoc
  2. Get all <title> element nodes
  3. Output the value of the text node of each <title> element

TIY

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.

TIY

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:

  1. Ved hjælp af loadXMLDoc() "books.xml"Indlæs i xmlDoc"
  2. Get the child nodes of the root element
  3. Check the node type of each child node. If the node type is "1", it is an element node
  4. Hvis det er et elementnode, så udskriv navnet på noden

TIY

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;
}
  1. Ved hjælp af loadXMLDoc() "books.xml"Indlæs i xmlDoc"
  2. Få den første book elements undernode
  3. Sæt variablen "y" til den første book elements første undernode
  4. Kontroller hver undernodes nodetype, hvis nodetype er "1", så er det et elementnode
  5. Hvis det er et elementnode, så udskriv navnet på noden
  6. Sæt variablen "y" til den næste同级node og kør løkken igen

TIY