Apache Xerces - Descripción general del analizador DOM
El Document Object Model es una recomendación oficial del World Wide Web Consortium (W3C). Define una interfaz que permite a los programas acceder y actualizar el estilo, la estructura y el contenido de los documentos XML. Los analizadores XML que admiten el DOM implementan esa interfaz.
¿Cuándo usar?
Debería usar un analizador DOM cuando:
Necesita saber mucho sobre la estructura de un documento.
Necesita mover partes del documento (es posible que desee ordenar ciertos elementos, por ejemplo).
Debe utilizar la información del documento más de una vez.
¿Lo que obtienes?
Cuando analiza un documento XML con un analizador DOM, obtiene una estructura de árbol que contiene todos los elementos de su documento. El DOM proporciona una variedad de funciones que puede utilizar para examinar el contenido y la estructura del documento.
Ventajas
El DOM es una interfaz común para manipular estructuras de documentos. Uno de sus objetivos de diseño es que el código Java escrito para un analizador compatible con DOM se ejecute en cualquier otro analizador compatible con DOM sin cambios.
Interfaces DOM
El DOM define varias interfaces Java. Estas son las interfaces más comunes:
Node - El tipo de datos base del DOM.
Element - La gran mayoría de los objetos con los que lidiarás son Elementos.
Attr - Representa un atributo de un elemento.
Text - El contenido real de un elemento o atributo.
Document- Representa todo el documento XML. Un objeto de documento a menudo se denomina árbol DOM.
Métodos DOM comunes
Cuando trabaja con DOM, hay varios métodos que se utilizan a menudo:
Document.getDocumentElement() - Devuelve el elemento raíz del documento.
Node.getFirstChild() - Devuelve el primer hijo de un nodo determinado.
Node.getLastChild() - Devuelve el último hijo de un nodo determinado.
Node.getNextSibling() - Estos métodos devuelven el siguiente hermano de un nodo determinado.
Node.getPreviousSibling() - Estos métodos devuelven el hermano anterior de un nodo determinado.
Node.getAttribute(attrName) - Para un nodo dado, devuelve el atributo con el nombre solicitado.