XML DOM nodlista

getElementsByTagName() metoder och childNodes egenskapen kan en lista med noder returneras.

DOM nod lista

När du använder childNodes eller getElementsByTagName() När du använder egenskaper eller metoder, returneras NodeList-objekt.

NodeList-objektet representerar en lista med noder, där ordningen är densamma som i XML.

Noderna i nodlistan kan nås genom att använda index som börjar vid 0.

Följande bild representerar books.xml Nodellista för <title>-elementet:

DOM nod lista

Anta att "books.xml" redan har laddats in i variabeln xmlDoc.

Denna kodbit returnerar en NodeList av "books.xml"-elements med titel:

x = xmlDoc.getElementsByTagName("title");

Efter att ha kört de ovanstående语句,x blir en NodeList-objekt.

Följande kodsnutt returnerar texten för det första <title>-elementet i nodlistan (x):

Exempel

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

Try it yourself

Efter att ovanstående sats har körts, txt = "雅舍谈吃".

nodlistlängd

NodeList-objektet kommer att hållas uppdaterat. Om element läggs till eller tas bort, uppdateras listan automatiskt.

nodlistans length egenskaperna är antalet noder i listan.

Denna kod returnerar antalet <title>-element i "books.xml":

x = xmlDoc.getElementsByTagName('title').length;

Efter att ovanstående sats har körts,x är 5.

längden på nodlistan kan användas för att traversera alla element i listan.

Denna kod använder length att genomgå egenskapslistan för att traversera listan över <title>-element:

Exempel

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i < xLen; i++) {
    txt += (x[i].childNodes[0].nodeValue) + " ";
}

Try it yourself

Example Explanation:

  1. Assume books.xml har laddats in xmlDoc Middle
  2. Använd x-variabeln för att spara en lista med noder för alla title-element
  3. Hämtar värdet för textnoden från <title>-elementet

DOM-egenskapslista (namngiven nodmapp)

elementnodens attributes Egenskaper returnerar en lista med egenskapsnoder.

Detta kallas namngiven nodmapp (named node map), och är liknande en nodlista, men med olika metoder och egenskaper.

Egenskapslistan kommer också att hållas uppdaterad. Om egenskaper läggs till eller tas bort, uppdateras listan automatiskt.

Denna kod returnerar en lista med egenskapsnoder från den första <book>-elementet i "books.xml":

x = xmlDoc.getElementsByTagName('book')[0].attributes;

Efter att ovanstående kod har körts,x.length är lika med antalet egenskaper, och kan användas x.getNamedItem() Returnerar en egenskapsnod.

Denna kod hämtar värdet för "category"-egenskapen hos det första boken samt antalet egenskaper:

Exempel

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

Try it yourself

Example Explanation:

  1. Assume books.xml loaded into xmlDoc Middle
  2. Set the x variable to save the list of all attributes of the first <book> element
  3. Get the value of the "category" attribute and the length of the attribute list