XML DOM Knooppuntwaarden ophalen
De eigenschap nodeValue wordt gebruikt om de tekstwaarde van een knooppunt op te halen.
De methode getAttribute() retourneert de waarde van een kenmerk.
De waarde van een element verkrijgen
In de DOM is alles een knooppunt. Elementknooppunten hebben geen tekstwaarde.
De tekstwaarde van een elementknooppunt wordt opgeslagen in een onderliggend knooppunt. Dit knooppunt wordt een tekstknooppunt genoemd.
Om de tekstwaarde van een element op te halen, moet u de waarde van het tekstknooppunt van de elementen ophalen.
De getElementsByTagName-methode
De methode getElementsByTagName() retourneert een knooppuntlijst van alle elementen , met de opgegeven tagnaam, in dezelfde volgorde als ze in het brondocument worden weergegeven.
Stel dat " books.xml " is geladen in xmlDoc.
Deze code haalt het eerste <title>-element op:
var x = xmlDoc.getElementsByTagName("title")[0];
De eigenschap ChildNodes
De eigenschap childNodes retourneert een lijst met de onderliggende knooppunten van een element .
De volgende code haalt het tekstknooppunt van het eerste <title>-element op:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
De nodeValue-eigenschap
De eigenschap nodeValue retourneert de tekstwaarde van een tekstknooppunt .
De volgende code haalt de tekstwaarde op van het tekstknooppunt van het eerste <title>-element:
Voorbeeld
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Resultaat in z: "Elke dag Italiaans"
Compleet voorbeeld
Voorbeeld
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET",
"books.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName('title')[0];
var y =
x.childNodes[0];
document.getElementById("demo").innerHTML = y.nodeValue;
}
</script>
</body>
</html>
Loop door alle <title>-elementen:
De waarde van een kenmerk verkrijgen
In de DOM zijn attributen knooppunten. In tegenstelling tot elementknooppunten hebben attribuutknooppunten tekstwaarden.
De manier om de waarde van een attribuut te krijgen, is om de tekstwaarde ervan te krijgen.
Dit kan worden gedaan met behulp van de methode getAttribute() of met de eigenschap nodeValue van het kenmerkknooppunt.
Een kenmerkwaarde ophalen - getAttribute()
De methode getAttribute() retourneert de waarde van een kenmerk .
De volgende code haalt de tekstwaarde op van het kenmerk "lang" van het eerste <title>-element:
Voorbeeld
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Resultaat in txt: "nl"
Loop door alle <book> elementen en krijg hun "categorie" attributen:
Een kenmerkwaarde ophalen - getAttributeNode()
De methode getAttributeNode() retourneert een attribuutknooppunt .
De volgende code haalt de tekstwaarde op van het kenmerk "lang" van het eerste <title>-element:
Voorbeeld
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Resultaat in txt = "nl"
Loop door alle <boek> elementen en krijg hun "categorie" attributen: