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