XML DOM Získejte hodnoty uzlů
Vlastnost nodeValue se používá k získání textové hodnoty uzlu.
Metoda getAttribute() vrací hodnotu atributu.
Získejte hodnotu prvku
V DOM je všechno uzel. Uzly prvku nemají textovou hodnotu.
Textová hodnota uzlu prvku je uložena v podřízeném uzlu. Tento uzel se nazývá textový uzel.
Chcete-li načíst textovou hodnotu prvku, musíte načíst hodnotu textového uzlu prvků.
Metoda getElementsByTagName
Metoda getElementsByTagName() vrací seznam uzlů všech prvků se zadaným názvem značky ve stejném pořadí, v jakém se objevují ve zdrojovém dokumentu.
Předpokládejme, že „ knihy.xml “ byl načten do xmlDoc.
Tento kód načte první prvek <title>:
var x = xmlDoc.getElementsByTagName("title")[0];
Vlastnost ChildNodes
Vlastnost childNodes vrací seznam podřízených uzlů prvku .
Následující kód načte textový uzel prvního prvku <title>:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
Vlastnost nodeValue
Vlastnost nodeValue vrací textovou hodnotu textového uzlu .
Následující kód načte textovou hodnotu textového uzlu prvního prvku <title>:
Příklad
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Výsledek v z: "každodenní italština"
Kompletní příklad
Příklad
<!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>
Projděte všechny prvky <title>:
Získejte hodnotu atributu
V modelu DOM jsou atributy uzly. Na rozdíl od uzlů prvků mají uzly atributů textové hodnoty.
Způsob, jak získat hodnotu atributu, je získat jeho textovou hodnotu.
To lze provést pomocí metody getAttribute() nebo pomocí vlastnosti nodeValue uzlu atributu.
Získejte hodnotu atributu – getAttribute()
Metoda getAttribute() vrací hodnotu atributu .
Následující kód načte textovou hodnotu atributu „lang“ prvního prvku <title>:
Příklad
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Výsledek v txt: "en"
Projděte všechny prvky <book> a získejte jejich atributy „kategorie“:
Získejte hodnotu atributu – getAttributeNode()
Metoda getAttributeNode() vrací atribut node .
Následující kód načte textovou hodnotu atributu „lang“ prvního prvku <title>:
Příklad
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Výsledek v txt = "en"
Projděte všechny prvky <book> a získejte jejich atributy „kategorie“: