Advertisement
Guest User

Untitled

a guest
Sep 21st, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. package com.loiane.parser;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.xml.parsers.DocumentBuilder;
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7. import javax.xml.parsers.ParserConfigurationException;
  8.  
  9. import org.w3c.dom.Attr;
  10. import org.w3c.dom.Document;
  11. import org.w3c.dom.Element;
  12. import org.w3c.dom.Node;
  13. import org.w3c.dom.NodeList;
  14. import org.xml.sax.SAXException;
  15.  
  16. /**
  17.  * Classe que faz o parser/leitura de um arquivo XML e imprime o conteúdo
  18.  * do arquivo no console
  19.  *
  20.  * @author Loiane Groner
  21.  *
  22.  */
  23. public class LeitorXMLDOM {
  24.  
  25.     /**
  26.      * Realiza a leitura do arquivo XML informado como parâmetro
  27.      * @param arquivoXML path/nome do arquivo XML
  28.      * @throws ParserConfigurationException
  29.      * @throws SAXException
  30.      * @throws IOException
  31.      */
  32.     public void realizaLeituraXML(String arquivoXML) throws ParserConfigurationException, SAXException, IOException{
  33.             //fazer o parse do arquivo e criar o documento XML
  34.             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  35.             DocumentBuilder db = dbf.newDocumentBuilder();
  36.             Document doc = db.parse(arquivoXML);
  37.  
  38.             //Passo 1: obter o elemento raiz
  39.             Element raiz = doc.getDocumentElement();
  40.             System.out.println("O elemento raiz é: " + raiz.getNodeName());
  41.  
  42.             //Passo 2: localizar os elementos filhos da agenda
  43.             NodeList listaContatos = raiz.getElementsByTagName("contato");
  44.  
  45.             //Passo 3: obter os elementos de cada elemento contato
  46.             for (int i=0; i<listaContatos.getLength(); i++){
  47.                 System.out.println();
  48.  
  49.                 //como cada elemento do NodeList é um nó, precisamos fazer o cast
  50.                 Element contato = (Element) listaContatos.item(i);
  51.  
  52.                 //Passo 4: obter o atributo id do contato
  53.                 Attr id = contato.getAttributeNode("id");
  54.                 System.out.println("Contato id: " + id.getNodeValue());
  55.  
  56.                 //Passo 5: obtém o nome do contato
  57.                 NodeList listaNomes = contato.getElementsByTagName("nome");
  58.                 Node nome = listaNomes.item(0).getFirstChild();
  59.                 System.out.println("Nome: " + nome.getNodeValue());
  60.  
  61.                 //Passo 6: obtém o endereço do contato
  62.                 NodeList listaEndereco = contato.getElementsByTagName("endereco");
  63.                 Node endereco = listaEndereco.item(0).getFirstChild();
  64.                 System.out.println("Endereço: " + endereco.getNodeValue());
  65.  
  66.                 //Passo 7: obtém o telefone do contato
  67.                 NodeList listaTelefone = contato.getElementsByTagName("telefone");
  68.                 Node telefone = listaTelefone.item(0).getFirstChild();
  69.                 System.out.println("Telefone: " + telefone.getNodeValue());
  70.  
  71.                 //Passo 8: obtém o email do contato
  72.                 NodeList listaEmail = contato.getElementsByTagName("email");
  73.                 Node email = listaEmail.item(0).getFirstChild();
  74.                 System.out.println("Email: " + email.getNodeValue());
  75.  
  76.             }
  77.     }
  78.  
  79.     public static void main(String[] args){
  80.        
  81.         LeitorXMLDOM parser = new LeitorXMLDOM();
  82.         try {
  83.             parser.realizaLeituraXML("contato.xml");
  84.            
  85.         } catch (ParserConfigurationException e) {
  86.             System.out.println("O parser não foi configurado corretamente.");
  87.             e.printStackTrace();
  88.         } catch (SAXException e) {
  89.             System.out.println("Problema ao fazer o parse do arquivo.");
  90.             e.printStackTrace();
  91.         } catch (IOException e) {
  92.             System.out.println("O arquivo não pode ser lido.");
  93.             e.printStackTrace();
  94.         }
  95.     }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement