XML DOM Obter valores do nó
A propriedade nodeValue é usada para obter o valor de texto de um nó.
O método getAttribute() retorna o valor de um atributo.
Obter o valor de um elemento
No DOM, tudo é um nó. Os nós de elemento não têm um valor de texto.
O valor de texto de um nó de elemento é armazenado em um nó filho. Este nó é chamado de nó de texto.
Para recuperar o valor de texto de um elemento, você deve recuperar o valor do nó de texto dos elementos.
O método getElementsByTagName
O método getElementsByTagName() retorna uma lista de nós de todos os elementos , com o nome da tag especificada, na mesma ordem em que aparecem no documento de origem.
Suponha que " books.xml " tenha sido carregado em xmlDoc.
Este código recupera o primeiro elemento <title>:
var x = xmlDoc.getElementsByTagName("title")[0];
A propriedade ChildNodes
A propriedade childNodes retorna uma lista de nós filho de um elemento .
O código a seguir recupera o nó de texto do primeiro elemento <title>:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
A propriedade nodeValue
A propriedade nodeValue retorna o valor de texto de um nó de texto .
O código a seguir recupera o valor de texto do nó de texto do primeiro elemento <title>:
Exemplo
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Resultado em z: "Italiano de todos os dias"
Exemplo Completo
Exemplo
<!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>
Percorra todos os elementos <title>:
Obter o valor de um atributo
No DOM, os atributos são nós. Ao contrário dos nós de elemento, os nós de atributo têm valores de texto.
A maneira de obter o valor de um atributo é obter seu valor de texto.
Isso pode ser feito usando o método getAttribute() ou usando a propriedade nodeValue do nó de atributo.
Obter um valor de atributo - getAttribute()
O método getAttribute() retorna o valor de um atributo .
O código a seguir recupera o valor de texto do atributo "lang" do primeiro elemento <title>:
Exemplo
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Resultado em txt: "pt"
Percorra todos os elementos <book> e obtenha seus atributos de "categoria":
Obter um valor de atributo - getAttributeNode()
O método getAttributeNode() retorna um nó de atributo .
O código a seguir recupera o valor de texto do atributo "lang" do primeiro elemento <title>:
Exemplo
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Resultado em txt = "pt"
Percorra todos os elementos <book> e obtenha seus atributos de "categoria":