segunda-feira, 10 de novembro de 2014

Usando JAXB para ler XMLs

Para gerar as classes java utilizando JAXB, você precisa do XSD do arquivo XML.

Com o XSD, você pode gerar as classes utilizando o eclipe ou com o comando de prompt xjc que vem com o pacote do JAXB.


Para o eclipse, utilize a opção exibida no print acima.


package samples;

import java.io.BufferedInputStream;
import java.io.FileInputStream;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;

import samples.jaxb.ObjectFactory;
import samples.jaxb.Pedido;

public class LeitorXML {

 public static void main(String[] args) {
  try {
   
   // Nunca colocar esse trecho em um loop
   JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
   Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
   
   BufferedInputStream bis = new BufferedInputStream(new FileInputStream("pedido.xml"));
   Pedido pedido = (Pedido) jaxbUnmarshaller.unmarshal(bis);

   System.out.println(pedido.getIdPedido());
   System.out.println(pedido.getRemetente());
   System.out.println(pedido.getDestinatario().getNome());
   System.out.println(pedido.getItem().get(0).getPreco());
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

}

Nenhum comentário:

Postar um comentário