XStream - formatar xml

9 respostas
alves.Felipe

Dae galera…

estou usando o xstream para converter meu objeto em xml… blz…
mas qdo ele transforma a String de xml fica assim com espaços:

<inutNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07"> <infInut Id="ID417890826600047755001000000002000000002"> <tpAmb>2</tpAmb> <xServ>INUTILIZAR</xServ> <cUF>41</cUF> <ano>09</ano> <CNPJ>78908266000477</CNPJ> <mod>55</mod> <serie>1</serie> <nNFIni>2</nNFIni> <nNFFin>2</nNFFin> <xJust>TESTE MAIS UMA TENTATIVA DE TESTE PARA INUTILIZAR</xJust> </infInut> </inutNFe>

mas eu queria deixar assim, sem espaços:

<inutNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07"><infInut Id="ID417890826600047755001000000002000000002"><tpAmb>2</tpAmb><xServ>INUTILIZAR</xServ><cUF>41</cUF><ano>09</ano><CNPJ>78908266000477</CNPJ><mod>55</mod><serie>1</serie><nNFIni>3</nNFIni><nNFFin>3</nNFFin><xJust>TESTE MAIS UMA TENTATIVA DE TESTE PARA INUTILIZAR</xJust></infInut></inutNFe>

alguém sabe como fazer para o xstrean não deixar formatado o xml?

valeu
abraço

9 Respostas

alves.Felipe

alguem??

renzonuccitelli

Cara, de uma lida na documentação do Xstream. Em geral, nao vejo por ai arquivox XML não formatados, pois um dos intuitos do mesmo é facilitar a leitura por humanos. Em último caso, vc poderia acessar o arquivo da forma usual e retirar os \n e \t do mesmo…

alves.Felipe

então cara…

pior que eu ja procurei na documentação do Xstream mas não consegui achar…
então qdo eu leio o arquivo só aparecen os \n… ai qdo eu tiro com o replaceAll da problema na minha
assinatura digital entende ( estou fazendo a NFe)?

é bem por isso que eu não quero que fique formatado para não dar problema na assinatura digital…

alves.Felipe

ninguem sabe?!?

ronaldocwb

Se alguem precisar fazer isso é só utilizar o Dom4JDriver. Algo como:

Dom4JDriver dom = new Dom4JDriver(); OutputFormat format = new OutputFormat(); format.setEncoding("UTF-8"); format.setNewLineAfterDeclaration(false); format.setNewlines(false); dom.setOutputFormat(format); xstream = new XStream(dom);

As classes necessárias ficam na lib dom4j

petrasbut

Exemplo:
XStream xs = new XStream(new XppDriver(new XmlFriendlyReplacer("-", "")));

Isso transforma underline duplo “__” em simpes “_”

Tenta jogar um /n ali auehuae

Não rola testei aki… nao sei ainda.

V

1. Dom4JDriver dom = new Dom4JDriver(); 2. OutputFormat format = new OutputFormat(); 3. format.setEncoding("UTF-8"); 4. format.setNewLineAfterDeclaration(false); 5. format.setNewlines(false); 6. dom.setOutputFormat(format); 7. xstream = new XStream(dom);

Cara o topico ta velho, mais vamos ressucitar

as linhas 4, 5 e 6 não funcionam aqui no meu programa. pq?

D

valkkefast:
1. Dom4JDriver dom = new Dom4JDriver(); 2. OutputFormat format = new OutputFormat(); 3. format.setEncoding("UTF-8"); 4. format.setNewLineAfterDeclaration(false); 5. format.setNewlines(false); 6. dom.setOutputFormat(format); 7. xstream = new XStream(dom);

Cara o topico ta velho, mais vamos ressucitar

as linhas 4, 5 e 6 não funcionam aqui no meu programa. pq?

Talvez você esteja pegando o OutputFormat errado… importe o do pacote: “org.dom4j.io

balrog

passe um CompactWriter ao metodo marshal e vc tera uma saida sem espacos

Criado 5 de maio de 2009
Ultima resposta 9 de jun. de 2011
Respostas 9
Participantes 7