Problemas xstream fromXml

1 resposta
donatinho

Boa tarde pessoal, tudo joia?

O meu problema é o seguinte:

tenho uma String teste que contem:

public static void main(String[] args) {
		FileUtil fu = new FileUtil();

		List<CatalogoNFeVO> listaCat = new ArrayList<CatalogoNFeVO>();
		
		CatalogoNFeVO catalogo = new CatalogoNFeVO();
		catalogo.setNumProt("444444444444444");
		catalogo.setTipoXml("1");
		catalogo.setTeste("<nfeProc></nfeProc>");
		listaCat.add(catalogo);
		
		RetornoCatalogoNFe cat = new RetornoCatalogoNFe();
		cat.setListaCatalogo(listaCat);
		
		String teste = (String) RetornoCatalogoNFe.toXML(cat);
		System.out.println(teste);
		
		RetornoCatalogoNFe ret = (RetornoCatalogoNFe) RetornoCatalogoNFe.fromXML(teste);
		
		System.out.println(ret.getListaCatalogo().get(0).getNumProt());
		System.out.println(ret.getListaCatalogo().get(0).getTipoXml());
		System.out.println(ret.getListaCatalogo().get(0).getTeste());
	}

para converter de objeto para String eu consigo perfeitamente, mas quando uso o Xstream para fazer o fromXML ele converte o campo teste que fica vazio.

Fiz um teste, ao retirar os sinais de > e < ele imprime

nfeProc/nfeProc

mas com esses simbolos ele imprime vazio…

alguem sabe como resolver esse problema?

Ja procurei na net e nao achei uma solucao para isso…

obrigado

donatinho

1 Resposta

donatinho

Bom dia galera!

Achei a solução!!!

Fiz uma classe Pretty que coloca dentro de um CDATA a minha string de xml :shock:

import com.thoughtworks.xstream.core.util.QuickWriter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;

public class CatalogoNFePretty extends PrettyPrintWriter implements HierarchicalStreamWriter  {
    public CatalogoNFePretty(Writer writer) {
        super(writer);
    }

    protected void writeText(QuickWriter writer, String text) {
    	if (text.indexOf('<') < 0) {
            writer.write(text);
        
    	} else { 
            writer.write("<![CDATA["); writer.write(text); writer.write("]]>"); 
        
        }
    }
}

com isso, ao chamar o fromXML do Xstream, ele entende o seu conteudo como String …

é isso galera…

see ya

donatinho

Criado 22 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 1
Participantes 1