terça-feira, 17 de maio de 2011

Lendo e Escrevendo XML, JAVA + JDOM

Uma maniera bem simples e intuitiva de manipular xml com Java. Baixe a API JDOM. vale lembrar que JDOM é uma API Java, e não um parser.

Criando XML:

package br.com.exemplo.xml;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

public class CriarXml {

public static void main(String[] args) {
//Declaração dos elementos que irão compor a estrutura do documento.
Element blog = new Element("blog");
Element post = new Element("post");
Element titulo = new Element("titulo");
Element data = new Element("data");
Element conteudo = new Element("conteudo");

//"Setando" os atributos e conteúdos
blog.setAttribute("id","1");
Attribute atributo = new Attribute("Autor","Vitor Yudi Hansen");
post.setAttribute(atributo);
blog.addContent(post);
post.addContent(titulo);
post.addContent(data);
post.addContent(conteudo);

//Criando Documento com JDOM

Document doc = new Document();
doc.setRootElement(blog);

titulo.setText("Lendo e escrevendo XML");
data.setText("18/05/2011");
conteudo.setText("JDOM + JAVA!");

try{
//escrevendo no Doc
XMLOutputter out = new XMLOutputter();
java.io.FileWriter writer = new java.io.FileWriter("exemplo.xml");
// Caminho físico do arquivo, outro ex: "C://exemplo.xml"

out.output(doc, writer);
writer.flush();
writer.close();

}catch(Exception e){
e.getMessage();
}
}
}
Lendo XMl:

package br.com.exemplo.xml;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class LendoXml {

public static void main(String[] args) {
try{
//Aqui você informa o nome do arquivo XML.
File f = new File("exemplo.xml");
//Criamos uma classe SAXBuilder que vai processar o XML
SAXBuilder sb = new SAXBuilder();
//Este documento agora possui toda a estrutura do arquivo.
Document d = sb.build(f);
//Recuperamos o elemento root
Element blog = d.getRootElement();
//Recuperamos os elementos filhos (children)
List elements = blog.getChildren();
Iterator i = elements.iterator();

while (i.hasNext()) {
Element element = (Element) i.next();
System.out.println("Post:"+ element.getAttributeValue("Autor"));
System.out.println("Titulo:"+ element.getChildText("titulo"));
System.out.println("Data:"+ element.getChildText("data"));
System.out.println("Conteudo:"+ element.getChildText("conteudo"));
}
}catch (Exception e) {
}
}
}



Vitor Yudi Hansen