JDom

4 respostas
gqferreira

Olá pessoal!

Estou fazendo um pequeno sistema que usa como base de dados (pequena) um xml. Até ai tudo blz, mas quando armazeno algum valor com acentos, o arquivo pifa.. :P :P :P ele se torna irreconhecível pelos browsers e também pela aplicação. A solução foi trocar o encoding dele de UTF-8 para ISO-8859-1 mas fiz isso manualmente, como ja salvar o xml com essa codificação? Eu até poderia tratar os acentos antes de salvar mas é que eu preciso deles :P É caminho de arquivo...

Atualmente o meu codigo esta assim (resumidamente)
Element agenda = new Element("Agenda");
			Document documento = new Document(agenda);

Element backup = new Element("backup");
backup.setAttribute("id",String.valueOf(i));
		//Criando os elementos de backup
					Element eOrigem = new Element("localOrigem");
					eOrigem.setText(sLocalOrigem[i]);
					Element eDestino = new Element("localDestino");
					eDestino.setText(sLocalDestino[i]);
					Element eHora = new Element("hora");
					eHora.setText(sHora[i]);
					Element eData = new Element("data");
					eData.setText(sData[i]);
					Element eTodosOsDias = new Element("todosOsDias");
					eTodosOsDias.setText(sTodosOsDias[i]);
					Element eCompactar = new Element("compactar");
					eCompactar.setText(sCompactar[i]);
					Element eSubstituir = new Element("Substituir");
					eSubstituir.setText(sSubstituir[i]);
					Element eNomeArquivo = new Element("nomeArquivo");
					eNomeArquivo.setText(sArquivoFinal[i]);

			//Adicionando elementos no backup

					backup.addContent(eOrigem);
					backup.addContent(eDestino);
					backup.addContent(eData);
					backup.addContent(eHora);
					backup.addContent(eTodosOsDias);
					backup.addContent(eSubstituir);
					backup.addContent(eCompactar);
					backup.addContent(eNomeArquivo);

			//Adicionado o backup a Agenda
					agenda.addContent(backup);

                      //Criando o arquivo de saida
				FileWriter arquivo = new FileWriter(

						new File(FileSystemView.getFileSystemView().getDefaultDirectory()+"\\arquivo.xml"));

		     //Imprimindo o XML no arquivo
				XMLOutputter xout = new XMLOutputter();// Acho que é nesse objeto que tenho que setar o encoding mas isso eu não consegui fazer
				xout.output(documento, arquivo);
								
				
			} catch (IOException e) {

				e.printStackTrace();

			}
O xml gerado é esse:
<?xml version="1.0" encoding="UTF-8" ?> 
- <Agenda>
   - <backup id="0">
        <localOrigem>/home/gustavo/Ubuntu.iso</localOrigem> 
        <localDestino>/home/gustavo/Desktop</localDestino> 
        <data>10/10/2009<data /> 
        <hora>00:00:00</hora> 
        <todosOsDias>true</todosOsDias> 
        <Substituir>false</Substituir> 
        <compactar>false</compactar> 
        <nomeArquivo>MeuBackup</nomeArquivo> 
     </backup>
  </Agenda>

Agradeço desde já :wink: :thumbup:

Obs: Já procurei no google umas duas horas e só passei raiva em não achar...

4 Respostas

filipenf

dá uma olhada nesse link: http://www.javazoom.net/services/newsletter/xmlgeneration.html

acho que vai ajudar…

A

dá uma olhada no xstream, é uma biblioteca para parse de objetos java em xml e json e vice-versa. fácil de usar… ficar gerando assim na mão é muito chato. Só se for extremamente necessário…

gqferreira

Pessoal, não consegui… :cry: :cry: Segui o link do amigo e me perdi mais ainda, nem entendi como usar o xstream… Achei tão facil o jdom, não teria como vocês me darem uma mãozinha editando o meu exemplo? :oops:

gqferreira

Pessoal, achei a solução:

Format format = Format.getCompactFormat().setEncoding("ISO-8859-1"); format.setIndent(" "); format.setLineSeparator("\n"); XMLOutputter xout = new XMLOutputter(format);

Criado 12 de julho de 2009
Ultima resposta 14 de jul. de 2009
Respostas 4
Participantes 3