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: 9240 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: <?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> 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): 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"); 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: 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 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 |