XML DOM Node List

De knopenlijst wordt geretourneerd door de getElementsByTagName()-methode en de childNodes-eigenschap.

Voorbeeld

De volgende voorbeelden gebruiken een XML-bestand books.xml.

Functie loadXMLDoc()Ligt buiten JavaScript en wordt gebruikt om XML-bestanden te laden.

Tekst van het eerste <title>-element ophalen
In dit voorbeeld wordt de getElementsByTagName()-methode gebruikt om de tekst van het eerste <title>-element in "books.xml" te verkrijgen.
Door gebruik te maken van de length-eigenschap om knopen te doorlopen
In dit voorbeeld wordt een knopenlijst en de length-eigenschap gebruikt om alle <title>-elementen in "books.xml" te doorlopen.
Eigenschappen van het element ophalen
In dit voorbeeld wordt een eigenschapslijst gebruikt om de eigenschappen van het eerste <title>-element in "books.xml" te verkrijgen.

DOM Node List

Bij het gebruik van eigenschappen of methoden zoals childNodes of getElementsByTagName(), wordt een NodeList-object geretourneerd.

De NodeList-objecten vertegenwoordigen een lijst van knopen in dezelfde volgorde als in XML.

Gebruik de index die begint bij 0 om op de knopen in de knopenlijst te verwezen.

Het volgende beeld vertegenwoordigt "books.xml"Is een knopenlijst van de <title>-elementen:

DOM node list

The following code snippet uses loadXMLDoc() "Laad "books.xml" in xmlDoc in, en retourneer "books.xml"Is een knopenlijst van een title-element:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Na het uitvoeren van de bovenstaande statement, is x een NodeList-object geworden.

Dit codefragment retourneert de tekst van het eerste <title>-element in de knopenlijst x:

txt=x[0].childNodes[0].nodeValue;

Na het uitvoeren van de bovenstaande statement, is txt = "Everyday Italian".

TIY

Node List Length

Een NodeList-object houdt zichzelf bijwerken. Als je elementen verwijdert of toevoegt, wordt de lijst automatisch bijgewerkt.

De length-eigenschap van de knopenlijst is het aantal knopen in de lijst.

The following code snippet uses loadXMLDoc() Set "books.xml"Laad xmlDoc in, en retourneer het aantal <title>-elementen in "books.xml":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

Na het uitvoeren van de bovenstaande statement, is x = 4.

De lengte van de knopenlijst kan gebruikt worden om door alle elementen in de lijst te loopen.

Deze codefragment gebruikt de length-eigenschap om door de lijst van <title>-elementen te loopen:

xmlDoc=loadXMLDoc("books.xml");
//de x-variabele zal een knopenlijst bevatten
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Output:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Example explanation:

  • By using loadXMLDoc() Set "books.xml"Laad xmlDoc in
  • Stel de x-variabele in van de knopenlijst die alle title-elementen bevat
  • Geef de waarde van de tekstknopen van alle <title>-elementen uit

TIY

DOM Attribute List (Named Node Map)

De attributes-eigenschap van een elementknoop retourneert een lijst van eigenschapsknopen.

Dit wordt genoemd Named Node Map, behalve voor enkele verschillen in methoden en eigenschappen, lijkt het op een knopenlijst.

Het eigenschapslijstje houdt zichzelf bijwerken. Als je eigenschappen verwijdert of toevoegt, wordt deze lijst automatisch bijgewerkt.

The following code snippet uses loadXMLDoc() Load "books.xml" into xmlDoc and from "books.xmlThe first <book> element in "returns a list of attribute nodes:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

After the above code is executed, x.length is equal to the number of attributes, and x.getNamedItem() can be used to return the attribute node.

The following code snippet returns the value of the "category" attribute of a book and the number of its attributes:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Output:

children
1

Example explanation:

  • By using loadXMLDoc() Set "books.xml"Load xmlDoc in"
  • Set the x variable to a list of all attributes of the first <book> element
  • Output the value from the "category" attribute
  • Output the length of the attribute list

TIY