XML DOM Ottieni valori di nodo
La proprietà nodeValue viene utilizzata per ottenere il valore di testo di un nodo.
Il metodo getAttribute() restituisce il valore di un attributo.
Ottieni il valore di un elemento
Nel DOM, tutto è un nodo. I nodi dell'elemento non hanno un valore di testo.
Il valore di testo di un nodo elemento viene archiviato in un nodo figlio. Questo nodo è chiamato nodo di testo.
Per recuperare il valore di testo di un elemento, è necessario recuperare il valore del nodo di testo degli elementi.
Il metodo getElementsByTagName
Il metodo getElementsByTagName() restituisce un elenco di nodi di tutti gli elementi , con il nome del tag specificato, nello stesso ordine in cui appaiono nel documento di origine.
Supponiamo che " books.xml " sia stato caricato in xmlDoc.
Questo codice recupera il primo elemento <title>:
var x = xmlDoc.getElementsByTagName("title")[0];
La proprietà ChildNodes
La proprietà childNodes restituisce un elenco di nodi figlio di un elemento .
Il codice seguente recupera il nodo di testo del primo elemento <title>:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
La proprietà nodeValue
La proprietà nodeValue restituisce il valore di testo di un nodo di testo .
Il codice seguente recupera il valore di testo del nodo di testo del primo elemento <title>:
Esempio
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Risultato in z: "Everyday Italian"
Esempio completo
Esempio
<!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>
Passa in rassegna tutti gli elementi <title>:
Ottieni il valore di un attributo
Nel DOM, gli attributi sono nodi. A differenza dei nodi elemento, i nodi attributo hanno valori di testo.
Il modo per ottenere il valore di un attributo è ottenere il suo valore di testo.
Questo può essere fatto usando il metodo getAttribute() o usando la proprietà nodeValue del nodo attributo.
Ottieni un valore di attributo - getAttribute()
Il metodo getAttribute() restituisce il valore di un attributo .
Il codice seguente recupera il valore di testo dell'attributo "lang" del primo elemento <title>:
Esempio
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Risultato in txt: "en"
Passa in rassegna tutti gli elementi di <book> e ottieni i loro attributi di "categoria":
Ottieni un valore di attributo - getAttributeNode()
Il metodo getAttributeNode() restituisce un attributo node .
Il codice seguente recupera il valore di testo dell'attributo "lang" del primo elemento <title>:
Esempio
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Risultato in txt = "en"
Passa in rassegna tutti gli elementi di <book> e ottieni i loro attributi di "categoria":