[RESOLVIDO]ajuda com xstream

6 respostas
R
já consegui adicionar uma tag a mais usando duas classes com o código abaixo:
XStream xstream = new XStream();

        xstream.alias("usuario", Usuario.class);
        xstream.alias("tweet", Tweet.class);
        
        Usuario usuario = new Usuario();
        usuario.setLogin("petccufcg");

        Tweet tweet = new Tweet();
        tweet.setMensagem("#News XStream - Converta objetos Java para XML - Por @ss");
        
        Tweet tweet2 = new Tweet();
        tweet2.setMensagem("Converta objetos Java para XML ");

        usuario.addTweet(tweet);
        usuario.addTweet(tweet2);
        String xml = xstream.toXML(usuario);
obtive:
<usuario>
  <login>petccufcg</login>
  <tweets>
    <tweet>
      <mensagem>#PETNews XStream - Converta objetos Java para XML - Por @CMPaes</mensagem>
      <timestamp>2013-02-19 15:36:35.933</timestamp>
    </tweet>
    <tweet>
      <mensagem>Converta objetos Java para XML </mensagem>
      <timestamp>2013-02-19 15:36:35.933</timestamp>
    </tweet>
  </tweets>
</usuario>

mas gostaria de adicionar utilizando apenas uma classe, por exemplo, a classe tweet no caso acima.
algué saberia dizer se é possível?

6 Respostas

romarcio

Não entendi muito bem o que você quer, mas vou te passar um tutorial sobre XStrem, da uma olhada, talvez tenha a sua resposta: Manipulando Arquivo XML ? Parte III: XStream

R

gostaria de utilizar apenas uma classe na alteração do xml gerado;
agora uso as duas abaixo:

xstream.alias("usuario", Usuario.class); xstream.alias("tweet", Tweet.class);

quero saber se é possível adicionar uma TAG de xml usando apenas a classe usuario, como se usuário tivesse um tweet :

&lt;tweet&gt; &lt;mensagem&gt;Converta objetos Java para XML &lt;/mensagem&gt; &lt;timestamp&gt;2013-02-19 15:36:35.933&lt;/timestamp&gt; &lt;/tweet&gt;

romarcio

Sim é possivel, mas você precisa ter dentro da classe usuario um objeto twitter. Dai, no XML você terá uma tag usuario com um tag interna twitter.

R

adicionei um tweet a classe usuario:

public class Usuario { private String login; private List&lt;Tweet&gt; tweets; private Tweet tweet;
porém só aparece a lista de tweets no xml gerado:

&lt;br.xstream.model.Tweet&gt; &lt;mensagem&gt;#PETNews XStream - Converta objetos Java para XML - Por @aes&lt;/mensagem&gt; &lt;timestamp&gt;2013-02-20 09:37:07.108&lt;/timestamp&gt; &lt;/br.xstream.model.Tweet&gt; &lt;br.xstream.model.Tweet&gt; &lt;mensagem&gt;Converta objetos Java para XML &lt;/mensagem&gt; &lt;timestamp&gt;2013-02-20 09:37:07.108&lt;/timestamp&gt; &lt;/br.xstream.model.Tweet&gt;

romarcio

Tenta assim:

xstream.alias("usuario", Usuario.class);
xStream.aliasField("Twitter", Usuario.class, "twitter");

Você olhou o tutorial que te passei? Acredito que lá tenha exatamente o que você procura.

R

romarcio:
Tenta assim:

xstream.alias("usuario", Usuario.class);
xStream.aliasField("Twitter", Usuario.class, "twitter");

Você olhou o tutorial que te passei? Acredito que lá tenha exatamente o que você procura.

Tem valeu pelas dicas.

Criado 19 de fevereiro de 2013
Ultima resposta 21 de fev. de 2013
Respostas 6
Participantes 2