Java DOM Parser - Visão geral
O Document Object Model (DOM) é uma recomendação oficial do World Wide Web Consortium (W3C). Ele define uma interface que permite que os programas acessem e atualizem o estilo, a estrutura e o conteúdo dos documentos XML. Os analisadores XML que suportam DOM implementam esta interface.
Quando usar?
Você deve usar um analisador DOM quando -
Você precisa saber muito sobre a estrutura de um documento.
Você precisa mover partes de um documento XML (você pode querer classificar certos elementos, por exemplo).
Você precisa usar as informações em um documento XML mais de uma vez.
O que você ganha?
Ao analisar um documento XML com um analisador DOM, você obtém uma estrutura em árvore que contém todos os elementos do seu documento. O DOM fornece uma variedade de funções que você pode usar para examinar o conteúdo e a estrutura do documento.
Vantagens
O DOM é uma interface comum para manipular estruturas de documentos. Um de seus objetivos de design é que o código Java escrito para um analisador compatível com DOM deve ser executado em qualquer outro analisador compatível com DOM sem ter que fazer nenhuma modificação.
Interfaces DOM
O DOM define várias interfaces Java. Aqui estão as interfaces mais comuns -
Node - O tipo de dados base do DOM.
Element - A grande maioria dos objetos com os quais você lidará são Elementos.
Attr - Representa um atributo de um elemento.
Text - O conteúdo real de um Elemento ou Atr.
Document- Representa todo o documento XML. Um objeto Document é freqüentemente referido como uma árvore DOM.
Métodos DOM comuns
Quando você está trabalhando com DOM, existem vários métodos que você usa com frequência -
Document.getDocumentElement() - Retorna o elemento raiz do documento.
Node.getFirstChild() - Retorna o primeiro filho de um determinado Nó.
Node.getLastChild() - Retorna o último filho de um determinado Nó.
Node.getNextSibling() - Esses métodos retornam o próximo irmão de um determinado Nó.
Node.getPreviousSibling() - Esses métodos retornam o irmão anterior de um determinado Nó.
Node.getAttribute(attrName) - Para um determinado Nó, ele retorna o atributo com o nome solicitado.