ul1sses 5 de jul. de 2012
Um exemplo:
ByteArrayInputStream inputStream = new ByteArrayInputStream ( xml . getBytes ( "UTF-8" ));
XStream xStream = new XStream ();
xStream . alias ( "classeX" , ClasseX . class );
ClassePrincipal classePrincipal = ( ClassePrincipal ) xStream . fromXML ( inputStream );
Você deve pesquisar sobre o método alias do xStream
ul1sses 5 de jul. de 2012
A outra classe é atributo da primeira ou são duas classes separadas?
ul1sses 5 de jul. de 2012
Bom, nunca trabalhei com uma estrutura assim e não sei dizer se o xStream trata esse tipo.
Mas, por mais que os dois objetos/classes sejam separados, acredito que ambos sejam atributos de uma classe principal, certo?
Por que geralmente o XML segue o padrão:
<tagPrincipal>
<outraTag>
<atributoTag> alguma coisa</atributoTag>
</outraTag>
<maisUmaTag>
....
....
</maisUmaTag>
</tagPrincipal>
Se não for, já não saberei como ajudar. :S
Por que esse XML é gerado assim? As informações são tão diferentes para ter que ficarem fora de uma tag principal?
ul1sses 5 de jul. de 2012
<principal>
<pessoa>
<nome> Ulisses</nome>
<idade> 27</idade>
</pessoa>
<produtos>
<produto>
<nome> Sabão</nome>
<valor> 10</valor>
</produto>
<produto>
<nome> Farinha</nome>
<valor> 2</valor>
</produto>
</produtos>
</principal>
package xtream ;
import java.util.ArrayList ;
import java.util.List ;
import com.thoughtworks.xstream.XStream ;
public class Teste {
public static void main ( String args [] ) {
XStream xs = new XStream ();
xs . alias ( "principal" , Principal . class );
xs . alias ( "produto" , Produto . class );
xs . alias ( "pessoa" , Pessoa . class );
xs . alias ( "produtos" , List . class );
Pessoa pa = new Pessoa ();
pa . nome = "Ulisses" ;
pa . idade = 27 ;
Produto p = new Produto ();
p . nome = "Sabão" ;
p . valor = 10 ;
Produto p2 = new Produto ();
p2 . nome = "Farinha" ;
p2 . valor = 2 ;
List < Produto > produtos = new ArrayList < Produto > ();
produtos . add ( p );
produtos . add ( p2 );
Principal principal = new Principal ();
principal . pessoa = pa ;
principal . produtos = produtos ;
String xml = xs . toXML ( principal );
System . out . println ( xml );
Principal principal2 = ( Principal ) xs . fromXML ( xml );
}
}
package xtream ;
import java.util.List ;
public class Principal {
public Pessoa pessoa ;
public List < Produto > produtos ;
}
package xtream ;
public class Pessoa {
public String nome ;
public int idade ;
}
package xtream ;
public class Produto {
public String nome ;
public int valor ;
}