Obtención de valores de nodo XML DOM

La propiedad nodeValue se utiliza para obtener el valor de texto del nodo.

El método getAttribute() devuelve el valor del atributo.

Ejemplo

El siguiente ejemplo utiliza el archivo XML books.xml.

Función loadXMLDoc()ubicado en JavaScript externo, se utiliza para cargar archivos XML.

Obtener el valor del elemento
En este ejemplo, se utiliza getElementsByTagname() para obtener el primer elemento <title> en "books.xml".
Obtener el valor del atributo
En este ejemplo, se utiliza el método getAttribute() para obtener el valor del atributo "lang" del primer elemento <title> en "books.xml".

Obtener el valor del elemento

En el DOM, cada componente es un nodo. Los nodos de elemento no tienen valor de texto.

El texto de los nodos de elemento se almacena en los nodos hijos. Este nodo se llama nodo de texto.

El método para obtener el texto del elemento es obtener el valor de este nodo hijo (nodo de texto).

Obtener el valor del elemento

El método getElementsByTagName() devuelve una lista de nodos que contienen todos los elementos con el nombre de etiqueta especificado, en el orden en que aparecen en el documento de origen.

El siguiente código utiliza loadXMLDoc() Establecer "books.xmlCargar xmlDoc y buscar el primer elemento <title>:

xmlDoc=loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("title")[0];

La propiedad childNodes devuelve una lista de nodos hijos.<title> El elemento tiene un solo nodo hijo, que es un nodo de texto.

El siguiente código busca el nodo de texto del elemento <title>:

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

La propiedad nodeValue devuelve el valor de texto del nodo de texto:

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

Resultado: txt = "Harry Potter"

TIY

Recorrer todos los elementos <title>:TIY

Obtener el valor del atributo

En el DOM, los atributos también son nodos. A diferencia de los nodos de elemento, los nodos de atributo tienen un valor de texto.

El método para obtener el valor del atributo es obtener su valor de texto.

Esta tarea se puede completar utilizando el método getAttribute() o la propiedad nodeValue del nodo de atributo.

Obtener el valor del atributo - getAttribute()

El método getAttribute() devuelve el valor del atributo.

El siguiente código busca el valor de texto del atributo "lang" del primer elemento <title>:

xmlDoc=loadXMLDoc("books.xml");
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

Resultado: txt = "en"

Ejemplo de explicación:

  • Al usar loadXMLDoc() Establecer "books.xmlCargar en xmlDoc
  • Establecer el valor de la propiedad "lang" del primer nodo <title> en la variable txt

TIY

Recorrer todos los elementos <book> y obtener sus atributos "category":TIY

Obtener el valor del atributo - getAttributeNode()

El método getAttributeNode() devuelve el nodo de atributo.

El siguiente código recupera el valor de texto del atributo "lang" del primer elemento <title>:

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

Resultado: txt = "en"

Ejemplo de explicación:

  • Al usar loadXMLDoc() Establecer "books.xmlCargar en xmlDoc
  • Obtener el nodo de atributo "lang" del primer nodo <title>
  • Establecer el valor de la propiedad en la variable txt

TIY

Recorrer todos los elementos <book> y obtener sus atributos "category":TIY