XML DOM - Atributos y métodos
- Página anterior Carga DOM
- Página siguiente Acceso a nodos DOM
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.
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
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
- Página anterior Carga DOM
- Página siguiente Acceso a nodos DOM