Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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

Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.