XML DOM - Atributos y métodos

Atributos y métodos definen la interfaz de programación de XML DOM.

Ejemplo

El siguiente ejemplo utiliza un archivo XML books.xml.

Función loadXMLDoc()ubicado en JavaScript externo, utilizado para cargar un archivo XML.

Función loadXMLString()ubicado en JavaScript externo, utilizado para cargar una cadena de XML.

Cargar y analizar un archivo XML
Cargar y analizar una cadena de XML

Interfaz de programación

DOM simula XML como una serie de interfaces de nodos. Se puede acceder a los nodos mediante JavaScript u otros lenguajes de programación. En este tutorial, utilizamos JavaScript.

La programación de DOM se define mediante un conjunto estándar de atributos y métodos.

AtributosA menudo se utiliza de la manera "¿qué es algo" (por ejemplo, el nombre del nodo es "book").

MétodosSe utiliza a menudo de la manera "hacer algo con algo" (por ejemplo, eliminar el nodo "book").

Propiedades XML DOM

Algunas propiedades DOM típicas:

  • x.nodeName - Nombre de x
  • x.nodeValue - Valor de x
  • x.parentNode - Nodo padre de x
  • x.childNodes - Nodos hijos de x
  • x.attributes - Nodos de atributos de x

Notas:En la lista anterior, x es un objeto de nodo.

Métodos XML DOM

  • x.getElementsByTagName(name) - Obtener todos los elementos con el nombre de etiqueta especificado
  • x.appendChild(node) - Insertar un nodo hijo en x
  • x.removeChild(node) - Eliminar el nodo hijo de x

Notas:En la lista anterior, x es un objeto de nodo.

Ejemplo

Código JavaScript para obtener el texto del elemento <title> en books.xml:

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

Después de la ejecución de esta sentencia, el valor guardado en txt es "Harry Potter".

Explicación:

  • xmlDoc - XML DOM creado por el analizador
  • getElementsByTagName("title")[0] - Primer elemento <title>
  • childNodes[0] - Primer nodo hijo del elemento <title>
  • nodeValue - Valor del nodo (texto en sí)

En el ejemplo anterior, getElementsByTagName es un método, mientras que childNodes y nodeValue son propiedades.

Análisis de archivo XML - Ejemplo multi-navegador

El fragmento de código a continuación utiliza la función loadXMLDoc para books.xml Cargar el analizador XML y mostrar los datos del primer book:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Salida:

Harry Potter
J K. Rowling
2005

TIY

En el ejemplo anterior, utilizamos childNodes[0] para cada nodo de texto, incluso si cada elemento tiene solo un nodo de texto. Esto se debe a que el método getElementsByTagName() siempre devuelve un array.

Análisis de cadena XML - Ejemplo multi-navegador

El código a continuación carga y analiza una cadena XML:

El fragmento de código a continuación utiliza la función loadXMLString para books.xml Cargar el analizador XML y mostrar los datos del primer book:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Salida:

Harry Potter
J K. Rowling
2005

TIY