Java Dom Parser exemplos para analisar XML

Java Dom Parser exemplos para analisar XML

XML é uma linguagem de marcação usada principalmente para trocar informações entre dois aplicativos, como bancos de dados, sites, etc. As tags XML são definidas pelo usuário. É mais legível pelo homem do que outros idiomas de marcação. Java tem muitas bibliotecas internas para ler os documentos XML usando os analisadores Java XML, como Dom Parser, SAX Parser, etc. Os métodos de uso do analisador dom para ler os documentos XML usando Java são mostrados neste tutorial.

Pré -requisitos:

  1. Instale a versão mais recente do OpenJDK com JRE.
  2. Instale qualquer editor útil para escrever e executar o código Java. Você pode verificar este tutorial para instalar o editor Eclipse.

Crie um arquivo XML

Crie um arquivo XML chamado “Produtos.xml ”com o seguinte script. O elemento raiz deste arquivo contém três elementos filhos com o nome da tag "Produto". Cada tag "produto" tem dois atributos que são "id" e "tipo". Cada tag "produto" tem três elementos filhos que são "marca", "tamanho" e "preço".

produtos.xml




Samsung
500 TB
70


Dell
15 "
100


Samsung
Médio
5


Logitech
Pequeno
10

Java Dom Parser

O analisador do Modelo de Objeto do Documento (DOM) é uma das maneiras de ler os valores de atributo e tag do documento XML em Java. Os novos valores de nó podem ser adicionados, alterados ou excluídos usando este analisador. Ele lê todo o conteúdo do documento XML e o carrega em um formato de estrutura de árvore. Os métodos de ler todo o conteúdo de um “produtos.Arquivo XML ”e pesquisando o conteúdo específico com base em um valor de atributo usando um analisador DOM são mostrados na próxima parte deste tutorial.

Leia um arquivo XML usando o analisador DOM

Crie um arquivo Java com o seguinte código que analisa o conteúdo dos “Produtos.Arquivo XML ”e imprima o conteúdo de cada tag“ Produto ”em forma de tabular. O objeto do construtor de documentos é criado no script para carregar o documento XML. Em seguida, cada tipo de nó é verificado e os valores de atributo de "id" e "type" são lidos usando o método getAttribute (). O método getElementsByTagName () é usado para ler o conteúdo da "marca", "tamanho" e "Preço" tags.

// importar módulos necessários
importar java.io.Arquivo;
importar javax.xml.analisadores.DocumentBuilderFactory;
importar javax.xml.analisadores.DocumentBuilder;
importação org.W3C.dom.Documento;
importação org.W3C.dom.Nodelist;
importação org.W3C.dom.Nó;
importação org.W3C.dom.Elemento;
classe pública JavaxmlParser
public static void main (string [] args)
tentar
// Crie DocumentBuilder para analisar o conteúdo do arquivo XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crie objeto do arquivo XML para analisar o documento XML
Documento xmldoc = construtor.Parse (novo arquivo ("Produtos.xml "));
// Crie objeto para ler o conteúdo do elemento específico
Nodelist ele = xmldoc.getElementsByTagName ("Produto");
// Imprima o título da saída tabular
Sistema.fora.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// Leia todos os atributos e valores do elemento do documento XML usando Loop
para (int i = 0; i < ele.getLength(); i++)
// Leia o nó atual
Nó nd = ele.item (i);
// Verifique o tipo de nó
if (nd.getNodEType () == nó.Element_node)
Elemento cur_element = (elemento) nd;
Sistema.fora.Imprimir (Cur_Element.getAttribute ("id") + "\ t");
Sistema.fora.Imprimir (Cur_Element.getAttribute ("type") + "\ t");
Sistema.fora.Imprimir (Cur_Element.getElementsByTagName ("marca").Item (0).getTextContent () + "\ t \ t");
Sistema.fora.Imprimir (Cur_Element.getElementsByTagName ("tamanho").Item (0).getTextContent () + "\ t");
Sistema.fora.print ("$" + cur_element.getElementsByTagName ("Price").Item (0).getTextContent () + "\ t");

Sistema.fora.println ();

catch (Exceção e)
e.printStackTrace ();


A saída a seguir aparece após a execução do código anterior. Os atributos e valores de tags do documento XML são impressos em forma de tabular. A etiqueta raiz do documento XML contém três tags de "produto". Portanto, três linhas de valores são impressas na saída:

Pesquise em um arquivo XML usando o analisador DOM

Crie um arquivo Java com o seguinte código que pesquisa o conteúdo da tag específica dos “Produtos.arquivo xml ”com base em um valor de atributo. O conteúdo da tag é impresso se alguma correspondência for encontrada. Uma mensagem de erro é impressa se nenhuma correspondência for encontrada.

// importar módulos necessários
importar java.io.Arquivo;
importar javax.xml.analisadores.DocumentBuilderFactory;
importar javax.xml.analisadores.DocumentBuilder;
importação org.W3C.dom.Documento;
importação org.W3C.dom.Nodelist;
importação org.W3C.dom.Nó;
importação org.W3C.dom.Elemento;
importar java.io.*;
classe pública JavaxmlParser2
public static void main (string [] args)
tentar
// Crie DocumentBuilder para analisar o conteúdo do arquivo XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crie objeto do arquivo XML para analisar o documento XML
Documento xmldoc = construtor.Parse (novo arquivo ("Produtos.xml "));
// Crie objeto para ler o conteúdo do elemento específico
Nodelist ele = xmldoc.getElementsByTagName ("Produto");
// Crie objeto para obter o valor de identificação que será pesquisado
BufferredReader BUF = new BufferredReader (novo InputStreamReader (sistema.em));
Sistema.fora.print ("Digite o ID do produto:");
String search = buf.Leia a linha();
// Defina o valor padrão
booleano encontrado = false;
// Leia todos os atributos e valores do elemento do documento XML usando Loop
para (int i = 0; i < ele.getLength(); i++)
// Leia o nó atual
Nó nd = ele.item (i);
// Verifique o tipo de nó
if (nd.getNodEType () == nó.Element_node)
Elemento cur_element = (elemento) nd;
String val = (string) cur_element.getAttribute ("id");
// Verifique se o ID de pesquisa existe ou não
if (val.igual a (pesquisa))

Sistema.fora.println ("id:" + cur_element.getAttribute ("id") + "\ t");
Sistema.fora.println ("Tipo:" + cur_element.getAttribute ("type") + "\ t");
Sistema.fora.println ("marca:" + cur_element.getElementsByTagName ("marca").Item (0).getTextContent () + "\ t \ t");
Sistema.fora.println ("Preço: $" + cur_element.getElementsByTagName ("Price").Item (0).getTextContent () + "\ t");
encontrado = true;
quebrar;



if (encontrado == false)
Sistema.fora.println ("ID não existe.");
catch (Exceção e)
e.printStackTrace ();


A saída a seguir aparece após a execução do código anterior. De acordo com a saída, o ID do produto do P-002 existe no arquivo XML. Portanto, o conteúdo da tag que contém este ID é impresso.

Conclusão

Os usos do analisador Java Dom para ler o conteúdo de um arquivo XML simples de maneiras diferentes são mostrados neste tutorial usando dois exemplos. Muitos outros analisadores estão disponíveis em Java para ler ou modificar os documentos XML.