Analizador DOM de Java: descripción general

El Document Object Model (DOM) 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 DOM implementan esta interfaz.

¿Cuándo usar?

Debería usar un analizador DOM cuando:

  • Necesita saber mucho sobre la estructura de un documento.

  • Necesita mover partes de un documento XML (es posible que desee ordenar ciertos elementos, por ejemplo).

  • Debe utilizar la información de un documento XML 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 debe ejecutarse en cualquier otro analizador compatible con DOM sin tener que hacer ninguna modificación.

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 utilizará 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.