Lijst met XML DOM- knooppunten
Een lijst met knooppunten wordt geretourneerd door de methode getElementsByTagName() en de eigenschap childNodes.
Probeer het zelf - Voorbeelden
De onderstaande voorbeelden gebruiken het XML-bestand books.xml .
In dit voorbeeld wordt de methode getElementsByTagName() gebruikt om de tekst uit het eerste <title>-element in "books.xml" te halen.
In dit voorbeeld worden de knooppuntenlijst en de eigenschap length gebruikt om alle <title>-elementen in "books.xml" te doorlopen
ophalen In dit voorbeeld wordt een attributenlijst gebruikt om het attribuut op te halen van het eerste <book>-element in "books.xml".
Lijst met DOM-knooppunten
Bij gebruik van eigenschappen of methoden zoals childNodes of getElementsByTagName(), wordt een knooppuntlijstobject geretourneerd.
Een knooppuntlijstobject vertegenwoordigt een lijst met knooppunten, in dezelfde volgorde als in de XML.
Knooppunten in de lijst met knooppunten zijn toegankelijk met indexnummers vanaf 0.
De volgende afbeelding vertegenwoordigt een lijst met knooppunten van de <title>-elementen in " books.xml ":
Stel dat "books.xml" wordt geladen in de variabele xmlDoc.
Dit codefragment retourneert een knooppuntenlijst met titelelementen in "books.xml":
x = xmlDoc.getElementsByTagName("title");
Na de uitvoering van de bovenstaande instructie is x een knooppuntlijstobject.
Het volgende codefragment retourneert de tekst van het eerste <title>-element in de knooppuntenlijst (x):
Voorbeeld
var txt = x[0].childNodes[0].nodeValue;
Na de uitvoering van het bovenstaande statement, txt = "Everyday Italian".
Lengte knooppuntlijst
Een knooppuntlijstobject houdt zichzelf up-to-date. Als een element wordt verwijderd of toegevoegd, wordt de lijst automatisch bijgewerkt.
De eigenschap length van een knooppuntenlijst is het aantal knooppunten in de lijst.
Dit codefragment retourneert het aantal <title>-elementen in "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Na de uitvoering van het bovenstaande statement, zal de waarde van x 4 zijn.
De lengte van de lijst met knooppunten kan worden gebruikt om alle elementen in de lijst te doorlopen.
Dit codefragment gebruikt de eigenschap length om door de lijst met <title>-elementen te lopen:
Voorbeeld
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Uitgang:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de variabele x in om een lijst met knooppunten van alle titelelementen te bevatten
- Verzamel de tekstknooppuntwaarden van <title>-elementen
DOM-kenmerkenlijst (kaart met benoemde knooppunten)
De eigenschap attributen van een elementknooppunt retourneert een lijst met attribuutknooppunten.
Dit wordt een benoemde knooppuntenkaart genoemd en is vergelijkbaar met een knooppuntenlijst, met uitzondering van enkele verschillen in methoden en eigenschappen.
Een attributenlijst houdt zichzelf up-to-date. Als een kenmerk wordt verwijderd of toegevoegd, wordt de lijst automatisch bijgewerkt.
Dit codefragment retourneert een lijst met attribuutknooppunten van het eerste <book>-element in "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Na de uitvoering van de bovenstaande code is x.length = het aantal attributen en kan x.getNamedItem() worden gebruikt om een attribuutknooppunt te retourneren.
Dit codefragment krijgt de waarde van het attribuut "category" en het aantal attributen van een boek:
Voorbeeld
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Uitgang:
cooking
1
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de x variabele in om een lijst van alle attributen van het eerste <book> element te bevatten
- Verkrijg de waarde van het attribuut "category" en de lengte van de attributenlijst