/** * classe responsavel por gerar um xml * @author Paulo * */publicclassJavaToXML{publicfinalstaticStringRAIZ_XML="Raiz";publicfinalstaticStringNO_XML="No";publicfinalstaticStringDEFINICAO_XML="<?xml version=\"1.0\"?>";publicstaticvoidmain(String[]args){System.out.println(DEFINICAO_XML);System.out.println("<"+RAIZ_XML+">");for(inti=0;i<10;i++){Strings=(i%2==0)?"M":"F";System.out.println(" <"+NO_XML+">");System.out.println(" <nome>nome "+i+"</nome>");System.out.println(" <idade>"+i*3+"</idade>");System.out.println(" <sexo>"+s+"</sexo>");System.out.println(" </"+NO_XML+">");}System.out.println("</"+RAIZ_XML+">");}}
Esses são os mais em evidência nos foruns… eu gosto mais
do sax, por que jé é nativo do java 1.5…
Tem vários artigos, segue um dos link. Aqui no guj
tem uma apostila do Guilherme, só que nao achei ela.
Qualquer dúvidas pode mandar e-mail… que mando um exemplo de parse e de criação do xml.
Espero ter ajudado
Flwss
erdanielli
Eu particularmente sou fã do XStream. Depois de fazer o download do JAR e colocar no classpath do projeto, seu código poderia ficar assim:
Não perca tempo escrevendo XML na mão. Uma olhadinha no Two minute tutorial vai te convencer disso.
Abraço!
T
thingol
paulofernandesjr:
essa forma esta correta para gerar um xml?
System.out.println(" <nome>nome " + i +"</nome>");
Se o nome contiver algum caracter que é inválido no XML (por exemplo, um “<” ou aspa ou “>”), então você vai ter problemas.
Dentro da medida do possível, não monte XML na mão porque pode ter problemas com esse tipo de coisas.
Use os pacotes que lhe recomendaram.
paulofernandesjr
Achei bem legal esse xstream mas o xml não precisa de um cabeçalho?
peczenyj
paulofernandesjr:
Achei bem legal esse xstream mas o xml não precisa de um cabeçalho?
O cabeçalho é opcional. Pode haver uma opção pro XStream criar esse cabeçalho mas não lembro exatamente como: de uma olhada na documentação.
importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.Writer;importcom.thoughtworks.xstream.XStream;publicclassXmlComXStream{privatestaticfinalStringDEFINICAO_XML="<?xml version=\"1.0\"?>\n";publicstaticvoidmain(String[]args)throwsIOException{Pessoapessoa=newPessoa("Alfredo",40,'M');XStreamxstream=newXStream();xstream.alias("pessoa",Pessoa.class);Filearquivo=newFile("teste.xml");if(arquivo.createNewFile()){Writerescreve=newFileWriter(arquivo);escreve.write(DEFINICAO_XML);xstream.toXML(pessoa,escreve);}else{System.out.println("nao criou o arquivo");}}}classPessoa{Stringnome;intidade;charsexo;Pessoa(Stringnome,intidade,charsexo){this.nome=nome;this.idade=idade;this.sexo=sexo;}}
VanHelsing
Tbm estou tentando gerar um XML.
Só uma duvida (de iniciante mesmo) :
A Classe Pessoa nao precisa implementar SERIALIZABLE?
Para que meu XML fique correto?
erdanielli
Para fins de serialização XStream, não. Confira no FAQ.
paulofernandesjr
Eu acho que não porque o objetivo é gerar um xml e não “abrir” o objeto em outro local, quando for carregar o xml, você terá que criar novos objetos…
eu sou iniciante, se eu falar besteira, por favor me corrijam!