Buscar

XML Manipulação passo a passo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

XML Manipulação
1
Java e XML
• O que é um Parser?
– Um parser é um pedaço de código que faz a
leitura de um documento XML e analisa a sua
estrutura.
2
Java e XML
• Como utilizar um parser?
– Passos
• criar um objeto do tipo parser; 
• Aponta o parser para o seu documento XML; 
• Processa os resultados.
3
Java e XML
• Tipos de parsers
– Os parsers são organizados em algumas
categorias:
• Parsers que fazem validação e parsers que não fazem
validação
• Parsers que suportam a linguagem de XML Schema
• Parsers que suportam o DOM (Document Object
Model)
• Parsers que suportam o SAX (Simple API for XML)
4
Categorias
• Parsers que fazem validação e parsers que 
não fazem validação
– Três tipos diferentes de XML
• Documentos bem formados, que seguem as regras 
básicas do XML;
• Documentos válidos, que são documentos bem 
formados, além de seguirem um conjunto de regras 
especificados em um DTD ou XML Schema;
• Documento inválidos: os que não seguem as regras dos 
documentos acima.
5
Categorias
• Parsers que fazem validação e parsers que 
não fazem validação
– Mas por qual razão deveria utilizar um parser que 
não faz validação?
• Duas boas razões: 
– velocidade 
– eficiência.
6
Categorias
• Parsers que suportam a linguagem de XML 
Schema
– A especificação original do XML definiu o DTD 
como a maneira de definir como um documento 
XML deveria ser. Os DTDs têm uma sintaxe 
diferente dos documentos XML, dificultando o 
entendimento em algumas vezes.
– Para contornar essas limitações, O W3C criou a 
linguagem XML Schema.
7
Categorias
• Parsers que suportam o DOM (Document Object Model)
– O DOM é uma recomendação oficial do W3C. É
definida uma interface que permite aos
programas acessarem e fazer updates na estrutura
do XML.
8
Categorias
• parsers que suportam o SAX (Simple API for 
XML)
– SAX é uma alternativa para se trabalhar com
documentos XML. Foi designado para ter uma
memória menor, mas deixa mais trabalho para o
programador. O SAX e o DOM dão
complementares, cada um é apropriado para
diferentes ocasiões.
9
A interface DOM
• DOM é uma interface de programação, baseada
no modelo de objetos, que permite a
manipulação e transformação de documentos em
XML.
• A interface DOM manipula documentos XML na
forma de uma estrutura em árvore.
• Quando um documento é carregado na memória
do computador, suas estruturas podem ser lidas e
manipuladas através do objeto DOM.
10
A interface DOM
• A interface DOM faz a representação do
documento XML na forma de uma árvore de
objetos, onde cada nó da árvore representa
um componente do documento.
11
A interface DOM
• O modelo implementado pela interface DOM
é a forma mais flexível para manipulação do
conteúdo de um documento XML.
• Este modelo não é limitado pela ordem em
que as estruturas do documento são
processadas, logo é possível navegar pelo
documento em qualquer ordem.
12
A interface DOM
13
A interface DOM
• O DOM define algumas sub-interfaces da interface Node:
– Element: representa um elemento XML
– Attr: representa um atributo do elemento XML
– Text: é o conteúdo de um elemento. Isso significa que um 
elemento com informação do tipo texto contém um filho do 
tipo nó de texto
– Document: represente todo o documento XML. Apenas um 
objeto Document existe em cada XML que você faz o parse. 
Dado um objeto Document, você pode saber qual o elemento 
raiz da árvore DOM; a partir da raiz, você pode usar as funções 
da interface DOM para ler a manipular a árvore XML.
14
Exemplo XML e DOM
15
Exemplo XML e DOM
16
XML em Java com a API DOM
• Requisitos
– JDK 1.4 ou superior
– Editor de texto ou uma IDE Java de sua escolha
17
XML em Java com a API DOM
Exemplo de XML
18
XML em Java com a API DOM
• Para trabalhar com a informação de um arquivo XML, é 
necessário primeiro fazer o parse para criar um objeto 
Document. 
• Como o objeto Document é uma interface, não 
podemos instanciar diretamente. 
• Geralmente, utilizamos uma Factory. 
• O processo exato pode variar de implementação para 
implementação, mas as ideias são as mesmas.
19
XML em Java com a API DOM
• A figura abaixo exemplifica o processo de parsear um XML com a API DOM (fonte: 
Oracle):
20
Passos
• Criar um DocumentBuilderFactory: este objeto
cria um DocumentBuilder
• Criar um DocumentBuilder: este objeto faz o
parse para criar um objeto do tipo Document
• Parsear o arquivo para criar um objeto
Document.
21
Exemplo
• //fazer o parse do arquivo e criar o documento XML
– DocumentBuilderFactory dbf = 
DocumentBuilderFactory.newInstance();
– DocumentBuilder db = 
dbf.newDocumentBuilder();
– Document doc = db.parse(arquivoXML);
22
Passo 1
• Depois de realizar o parser no documento e o 
objeto Document é criado, a aplicação pode 
explorar a estrutura.
//Passo 1: obter o elemento 
Element raiz = 
doc.getDocumentElement();
System.out.println(“elemento raiz é: 
“+ raiz.getNodeName());
• getNodeName()
23
Passo 2
• Após a determinação do elemento raiz,
podemos obter a lista de elementos filhos.
• O DOM fornece um tipo especial de interface
de coleção chamada NodeList usada para
referenciar uma lista de referências do tipo
Node.
24
Exemplo XML
• <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<pessoas>
<pessoa id="1">
<nome>João</nome>
<peso>95.3</peso>
<altura>1.95</altura>
</pessoa>
</pessoas>
25
Passo 2
//Passo 2: localizar os elementos filhos da 
agenda
NodeList listaPessoas = 
raiz.getElementsByTagName(”pessoa”);
26
Passo 3
//Passo 3: obter os elementos de cada elemento contato
for (int i=0; i < listaPessoas.getLength(); i++)
{
//como cada elemento do NodeList é um nó, 
//precisamos fazer o cast
Element pessoa= (Element) listaPessoas.item(i);
}
27
Passo 4
//Passo 4: obter o atributo id do contato
Attr id = pessoa.getAttributeNode(“id”);
System.out.println(“Pessoa id: “ + 
id.getNodeValue());
28
Passo 5
//Passo 5: obtém o nome do contato
• NodeList tagNome = 
tagPessoa.getElementsByTagName("nome");
• System.out.println("Nome: " + 
tagNome.item(0).getTextContent());
• NodeList tagPeso = 
tagPessoa.getElementsByTagName("peso");
• System.out.println("Peso: " + 
tagPeso.item(0).getTextContent());
• NodeList tagAltura = 
tagPessoa.getElementsByTagName("altura");
• System.out.println("Altura: " + 
tagAltura.item(0).getTextContent());
29
Escrevendo em um XML
• Passo 1
– Criando o elemento que será adicionado
Element novaPessoa = doc.createElement("pessoa");
novaPessoa.setAttribute("id", "3");
30
Escrevendo em um XML
• Passo 2
– Criando os elementos filhos do nó à ser inserido:
Element novoNome = doc.createElement("nome");
novoNome.setTextContent("Pedro");
Element novoPeso = doc.createElement("peso");
novoPeso.setTextContent("190");
Element novaAltura = doc.createElement("altura");
novaAltura.setTextContent("1.95");
31
Escrevendo em um XML
• Passo 3
– Adicionando as tags recem criadas ao elemento 
que será inserido:
novaPessoa.appendChild(novoNome);
novaPessoa.appendChild(novoPeso);
novaPessoa.appendChild(novaAltura);
32
Escrevendo em um XML
• Passo 4
– Adicionando o novo elemento ao XML
raiz.appendChild(novaPessoa);
33
Escrevendo o novo elemento no 
Arquivo XML
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new 
FileOutputStream("pessoa.xml"));
TransformerFactory transFactory = 
TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();transformer.transform(source, result);
34
35
Projeto
• Criar o programa de Estoque de uma livraria.
– O programa deve realizar o CRUD básico de obtenção 
de novos livros e sua persistência deve ser a partir de 
um documento XML.
– Modele o arquivo XML e desenvolva a aplicação com a 
linguagem java e a API DOM recém estudada.
– Criar a árvore do XML.
• Obs: CRUD
– Operações básicas em um sistema: Inserir, Remover, 
Listar e Alterar os produtos (Livros).
36

Outros materiais