Java e XML

Oi lista !
Gostaria de saber qual parser que recomedam para uso de Java e XML.
Sou iniciante no assunto e comprei um guia de consulta rápida: “Java e XML - processamento de documentos XML com Java” da novatec, mas este guia aborda apenas SAX e Dom, mas pesquisei e parece que tem outros parses que são bem mais fáceis de usar.

Li pouco sobre o castor, mas não achei exemplos claros para o parser.

Alguém poderia me recomendar algum site que alem de falar sobre os parses explique como utlizar ?!?!

Desde já agradeço,
Roberto Costa

Para arquivos XML pequenos, o DOM da conta do recado. Existe o XStream que le e grava XML a partir da sua classe. Mais informacoes, voce podera encontrar num tutorial no GUJ em http://guj.com.br, na secao artigos (no final da lista) ou ainda, na secao Foruns do mesmo site, topico Parseando XML usando SAX ou Parseando XML usando DOM.

xstream: trabalhando com facilmente xml em java
http://www.guj.com.br/java.artigo.144.1.guj

Parseando XML com o DOM
http://www.guj.com.br/forum/viewtopic.php?t=489

Parseando um XML com o SAX
http://www.guj.com.br/forum/viewtopic.php?t=91

marcioyudi,
Obrigado pela força !

Nestes tutoriais que vc me mandou o XStream é bastante simples de usar, só encontrei dificuldade em ler de um arquivo XML.

Pesquisando sobre o assunto achei o JAXB que é da sun, e aparentemente tb é simples de usar, mas não achei nenhum tutorial em português sobre a ferramenta. Alguém poderia me indicar um tutorial sobre JAXB, ou alguns exemplos ?!

[ ]s
Roberto

Sobre o Jaxb, eu nao o conheco, mas existem um topico sobre Jaxb, novamente, no forum do GUJ.

http://www.guj.com.br/forum/viewtopic.php?t=240&highlight=jaxb

Qualquer problema, poste um topico no forum do GUJ (pois, na minha opiniao, as respostas chegam mais rapido!).

Marcio

Recomendo fortemente o uso do JSX, que é um pacote de uso super simples (digo por experiência própria, já que eu o usei recentemente em um projeto e deu tudo certo!). Vou te mandar o pacote por email. Eu o usei da seguinte forma:

Para passar algo para XML:

ObjectWriter writer; try { writer = new ObjectWriter(new FileWriter("cadastro.xml")); writer.writeObject(clientes); writer.close(); } catch (IOException e) { System.exit(1); }

onde clientes é um Map onde estão sendo armazenados os clientes do meu cadastro.

Para passar algo de XML para um Objeto:

ObjectReader reader; String fileSeparator = System.getProperty("file.separator"); String caminho = System.getProperty("user.dir"); try { reader = new ObjectReader(new FileReader(caminho + fileSeparator + "cadastro.xml")); clientes = (TreeMap) reader.readObject(); } catch (Exception e) { clientes = new TreeMap(); }

Espero que ajude… :wink:

[quote=“Stefania”]Recomendo fortemente o uso do JSX, que é um pacote de uso super simples (digo por experiência própria, já que eu o usei recentemente em um projeto e deu tudo certo!). Vou te mandar o pacote por email. Eu o usei da seguinte forma:

Para passar algo para XML:

ObjectWriter writer; try { writer = new ObjectWriter(new FileWriter("cadastro.xml")); writer.writeObject(clientes); writer.close(); } catch (IOException e) { System.exit(1); }

onde clientes é um Map onde estão sendo armazenados os clientes do meu cadastro.

Para passar algo de XML para um Objeto:

ObjectReader reader; String fileSeparator = System.getProperty("file.separator"); String caminho = System.getProperty("user.dir"); try { reader = new ObjectReader(new FileReader(caminho + fileSeparator + "cadastro.xml")); clientes = (TreeMap) reader.readObject(); } catch (Exception e) { clientes = new TreeMap(); }

Espero que ajude… :wink:[/quote]

Se voce for para esse caminho, entao recomendo o XStream. Que consta naquele site que ja indiquei anteriormente (http://www.guj.com.br/java.artigo.144.1.guj) como tutorial.

Eu testei o XStream, e para gerar o XML gerou na boa, mas para der de um XML deu pau, fiz exatamente como o tutorial do GUJ, mas não funcionou.

O JaxB deve ser bom, ate pq é da SUN, mas é mais complicado de usar pois precisa de um dtd associado ao xml.

Vou testar agora o JSX.

Abraços,
Roberto