Problemas com o Xstream (tag igual a atributo) [Resolvido]

3 respostas
aristeniogirao

Boa tarde a todos!

Estou precisando de uma ajuda em Xstream. Já dei umas boas googladas e não achei o que preciso.

Estou fazendo um parse no xml com o Xstream, até ai tudo bem, mas não consigo pegar um atributo.

Meu XML:

... ...

Minha classe:

@XStreamAlias(“nota”)
public class Nota implements Serializable {

@XStreamAlias("cancelamento")
@XStreamAsAttribute	
private String cancelamento;

@XStreamAlias("liquidacao")
@XStreamAsAttribute
private String dataliquidacao;

@XStreamAlias("numerodanota")
@XStreamAsAttribute
private String numero;

@XStreamAlias("datadonegocio")
@XStreamAsAttribute
private String dataNegocio;

@XStreamAlias("cliente")
@XStreamAsAttribute
private String codigoCliente;

@XStreamAlias("cliente")
private Cliente cliente;

@XStreamAlias("financeiro")
private Financeiro financeiro;


@XStreamImplicit(itemFieldName="negocio")
private List<Negocio> negocios;

Gets e sets

Quando eu faço getAnnotatedMarshaller().getXStream().fromXML(Meu xml) ele me retorna todos os campos(cancelamento,liquidacao…), menos o valor do atributo “cliente”.

Obrigado!

3 Respostas

fantomas

Talvez seja porque você colocou o alias repetido, tente criar uma diferença entre eles.

@XStreamAlias("cliente") // << Este alias esta igual ao seguinte.
@XStreamAsAttribute 
private String codigoCliente; 

@XStreamAlias("cliente") // << E este esta igual ao anterior
private Cliente cliente;

Faça um teste assim:

@XStreamAlias("codigoCliente") // Alterei aqui de cliente para codigoCliente
@XStreamAsAttribute 
private String codigoCliente; 

@XStreamAlias("cliente") 
private Cliente cliente;

flws

aristeniogirao

Olá fantomas!

É exatamente esse o problema. Não sou eu que gero esse xml, eu já recebo ele pronto e quem envia não tem como alterar.

aristeniogirao

Não encontrei nenhum maneira de resolver usando o XStream, então depois de carregar o meu XML em uma String eu tive que fazer um replace substituindo o “cliente” por “clienteCod”. Valeu fantomas pela ajuda.

Criado 16 de agosto de 2012
Ultima resposta 18 de ago. de 2012
Respostas 3
Participantes 2