![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Java ::: Java + XML ::: SAX (Simple API for XML) |
Como extrair os valores de atributos de um documento XML usando o SAX (Simple API for XML)Quantidade de visualizações: 9348 vezes |
|
Nesta dica mostrarei como é possível usar o SAX (Simple API for XML) para extrair os valores dos atributos de um documento XML. Comece analisando o seguinte documento XML: Código para Pedido.xml: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
Este arquivo XML representa um pedido de um cliente
-->
<pedido data="23/05/2010" numero="101">
<cliente id="545">
<endereco-entrega>Endereço de entrega do cliente</endereco-entrega>
</cliente>
<itens-pedido>
<item id="543" tipo="CD" titulo="Roberto Carlos ao Vivo" />
<item id="123" tipo="DVD" titulo="Banda Cheiro de Amor"/>
</itens-pedido>
</pedido>
Note que quase todos os elementos possuem atributos. Assim, o elemento <pedido> possui os atributos data e numero, enquanto o elemento <cliente> possui o atributo id. Os valores dos atributos dos elementos em um documento XML podem ser obtidos por meio do método getValue() da interface Attributes. Este método aceita o nome do atributo e retorna o seu valor. Neste exemplo vamos criar uma classe personalizada chamada SaxHandler que herda de DefaultHandler. A classe DefaultHandler possui um método startElement() que é notificado a cada vez que um novo elemento é encontrado no documento XML. Como este método, na classe DefaultHandler, não faz nada, nós temos que escrever nossa própria implementação. Vamos começar então escrevendo a classe SaxHandler (SaxHandler.java): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxHandler extends DefaultHandler{
@Override
public void startElement(String uri, String localName,
String qName, Attributes attrs) throws SAXException {
// vamos obter a data e número do pedido
if(qName.equals("pedido")){
// data do pedido:
String data = attrs.getValue("data");
// número do pedido:
String numero = attrs.getValue("numero");
System.out.println("Data do pedido: " + data);
System.out.println("Número do pedido: " + numero);
}
// vamos obter também o id do cliente
else if(qName.equals("cliente")){
// id do cliente:
String id = attrs.getValue("id");
System.out.println("Id do cliente: " + id);
}
}
}
Veja que no corpo do método startElement() nós verificamos se o elemento atual é "pedido". Se for nós obtemos os valores dos atributos data e numero. Em seguida fazemos o mesmo com o elemento "cliente". Veja agora o código para a classe Main.java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class Main {
public static void main(String[] args){
try {
// vamos criar e retornar uma nova instância da implementação SAX
SAXParserFactory factory = SAXParserFactory.newInstance();
// vamos criar o parser
SAXParser parser = factory.newSAXParser();
// vamos definir a classe tratador (handler) que extende a
// classe DefaultHandler
SaxHandler handler = new SaxHandler();
// finalmente vamos fazer o parsing do documento XML
parser.parse("C:\\estudos_sax\\Pedidos.xml", handler);
}
catch(Exception ex){
ex.printStackTrace(System.out);
}
}
}
Ao executar este exemplo teremos o seguinte resultado: Data do pedido: 23/05/2010 Número do pedido: 101 Id do cliente: 545 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






