XML DOM Node List

NodeListen returneres af getElementsByTagName()-metoden og childNodes-egenskaben.

Eksempel

Følgende eksempel bruger en XML-fil books.xml.

Funktion loadXMLDoc()Ligger uden for JavaScript og bruges til at indlæse XML-filer.

Få tekst fra den første <title>-element
Dette eksempel bruger getElementsByTagName()-metoden til at hente tekst fra den første <title>-element i "books.xml".
Gennemløb noder ved hjælp af length-egenskaben
Dette eksempel bruger nodelisten og length-egenskaben til at loope gennem alle <title>-elementer i "books.xml".
Få elementets egenskaber
Dette eksempel bruger egenskabslisten til at hente egenskaber fra den første <title>-element i "books.xml".

DOM Node List

Når du bruger egenskaber eller metoder som childNodes eller getElementsByTagName(), returneres NodeList-objektet.

NodeList-objektet repræsenterer en liste over noder, i samme rækkefølge som i XML.

Brug indeks fra 0 for at få adgang til noder i nodelisten.

下面的图像表示 "books.xmlBilledet nedenfor repræsenterer "}}

DOM node liste

Nedenstående kodeafsnit bruger loadXMLDoc() "En nodeliste af <title>-elementer:"books.xmlIndlæs "books.xml" i xmlDoc, og returner "

xmlDoc=loadXMLDoc("books.xml");
"En nodeliste af en title-element:"

x=xmlDoc.getElementsByTagName("title");

Efter udførelsen af ovenstående sætning, x bliver til et NodeList-objekt.

Følgende kodeudsnit returnerer teksten fra det første <title>-element i nodelisten x:

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

TIY

Efter udførelsen af ovenstående sætning, txt = "Everyday Italian".

Node List Length

Length-egenskaben for NodeList-objektet opretholder sig selv. Hvis du sletter eller tilføjer elementer, opdateres listen automatisk.

Nedenstående kodeafsnit bruger loadXMLDoc() Sæt "books.xml"Indlæs xmlDoc, og returner antallet af <title>-elementer i "books.xml":

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

Efter udførelsen af ovenstående sætning, x = 4.

Længden af nodelisten kan bruges til at loope gennem alle elementer i listen.

Følgende kodeudsnit bruger length-egenskaben til at gennemgå listen over <title>-elementer:

xmlDoc=loadXMLDoc("books.xml");
//x-variablen vil holde en nodeliste
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Udskriv:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Sæt "books.xml"Indlæs xmlDoc
  • Sæt x-variablen til at gemme nodelisten for alle title-elementer
  • Output værdien fra tekstknuderne i alle <title>-elementer

TIY

DOM Attribute List (Named Node Map)

Elementnodens attributes-egenskab returnerer en liste over egenskabsnoder.

Dette kaldes Named Node Map, og med undtagelse af nogle forskelle i metoder og egenskaber, ligner det en nodeliste.

Egenskabslisten opretholder sin egen opdatering. Hvis du sletter eller tilføjer egenskaber, opdateres denne liste automatisk.

Nedenstående kodeafsnit bruger loadXMLDoc() Indlæs "books.xml" i xmlDoc og fra "books.xmlDen første <book>-element i "

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

Efter udførelse af ovenstående kode vil x.length være lig med antallet af egenskaber, og du kan bruge x.getNamedItem() til at returnere egenskabsnoden.

Nedenstående kodeafsnit viser værdien af en books "category"-egenskab samt antallet af egenskaber:

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

Udskriv:

children
1

Eksempel forklaring:

  • Ved brug af loadXMLDoc() Sæt "books.xml"Indlæs i xmlDoc"
  • Sæt x til en liste over alle egenskaber for den første <book>-element
  • Udskriv værdien af "category"-egenskaben
  • Udskriv længden af egenskabslisten

TIY