Obter valor de nó no XML DOM

nodeValue A propriedade é usada para obter o valor de texto do nó.

getAttribute() O método retorna o valor da propriedade.

Obter o valor do elemento

No DOM, tudo é nó. Os nós de elemento não têm valor de texto.

O valor de texto do nó do elemento é armazenado nos nós filhos. Este nó é chamado de nó de texto.

Para obter o valor de texto do elemento, você deve buscar o valor do nó de texto do elemento.

Isso é, o método para obter o texto do elemento é obter o valor deste nó filho (nó de texto).

Método getElementsByTagName

getElementsByTagName() O método retorna uma lista de nós que contém o nome de rótulo especificadoLista de nós de todos os elementos, a ordem dos elementos é a mesma que a ordem de aparição no documento de origem.

Supondo books.xml Já foi carregado no xmlDoc.

Este código busca o primeiro elemento <title>:

var x = xmlDoc.getElementsByTagName("title")[0];

Propriedade ChildNodes

childNodes A propriedade retornaLista de nós filhos do elemento.

O código a seguir busca o primeiro nó de texto do elemento <title>:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];

A propriedade nodeValue

nodeValue A propriedade retornaValor do texto do nó de texto.

O código a seguir busca o valor do texto do primeiro elemento <title>:

Exemplo

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;

Resultados de z: Conversas sobre Alimentação

Exemplo Completo

Exemplo 1

<!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>

Experimente Você Mesmo

Exemplo 2

Percorrer todos os elementos <title>:

x = xmlDoc.getElementsByTagName('title');
for (i = 0; i < x.length; i++) { 
    txt += x[i].childNodes[0].nodeValue + "<br>";
{}

Experimente Você Mesmo

Obter valor do atributo

No DOM, os atributos também são nós. Diferente dos nós de elemento, os nós de atributo têm valor textual.

O método para obter o valor do atributo é obter seu valor textual.

Pode ser obtido usando getAttribute() Método ou nó de atributo nodeValue Para concluir essa tarefa, use o atributo.

Obter valor de atributo - getAttribute()

getAttribute() O método retornadoValor do atributo.

O código a seguir busca o primeiro elemento <title>: "lang" Valor textual do atributo:

Exemplo 1

x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");

Experimente Você Mesmo

Exemplo 2

Percorrer todos os elementos <book> e obter o atributo "category":

x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++) { 
    txt += x[i].getAttribute("category") + "<br>";
{}

Experimente Você Mesmo

Obter valor de atributo - getAttributeNode()

getAttributeNode() O método retornadoNó de atributo.

O código a seguir busca o primeiro elemento <title>: "lang" Valor textual do atributo:

Exemplo 1

x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;

Experimente Você Mesmo

Exemplo 2

Percorrer todos os elementos <book> e obter o atributo "category":

x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++) {
    txt += x[i].getAttributeNode("category").nodeValue + "<br>";
{}

Experimente Você Mesmo