aorocha 12 de mar. de 2007
Exemplo real eu recebo esse xml:
<obterListaVoosSaida>
<jsessionid>ac1001b41faa866509f2f36d4c04834493eaddbfa798</jsessionid>
<dsObservacao>
<tsPartida>12MAR</tsPartida>
<sgSemanaPartida>MON</sgSemanaPartida>
<sgAeroportoOrigem>CGH</sgAeroportoOrigem>
<cdFusoHorarioPartida>Z-3</cdFusoHorarioPartida>
<sgAeroportoDestino>SDU</sgAeroportoDestino>
<qtHoraLocalDiferenca>$0</qtHoraLocalDiferenca>
<dsTextoLivre></dsTextoLivre>
</dsObservacao>
<viagem>
<vlTotalTarifa></vlTotalTarifa>
<voo>
<adLinhaItem>1</adLinhaItem>
<cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo>
<cdNumeroVoo>3932</cdNumeroVoo>
<assentos>
<dsDisponibilidade>
<clClasseReserva>Y</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
<dsDisponibilidade>
<clClasseReserva>S</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
</assentos>
<cdEquipamento>319</cdEquipamento>
<cdRefeicao>R</cdRefeicao>
<qtParadas>0</qtParadas>
<dsDiasOperacao>XJS</dsDiasOperacao>
<cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico>
</voo>
</viagem>
<viagem>
<vlTotalTarifa></vlTotalTarifa>
<voo>
<adLinhaItem>2</adLinhaItem>
<cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo>
<cdNumeroVoo>3934</cdNumeroVoo>
<assentos>
<dsDisponibilidade>
<clClasseReserva>Y</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
<dsDisponibilidade>
<clClasseReserva>N</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
</assentos>
<cdEquipamento>319</cdEquipamento>
<cdRefeicao>R</cdRefeicao>
<qtParadas>0</qtParadas>
<dsDiasOperacao>XS</dsDiasOperacao>
<cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico>
</voo>
<voo>
<adLinhaItem>2</adLinhaItem>
<cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo>
<cdNumeroVoo>3934</cdNumeroVoo>
<assentos>
<dsDisponibilidade>
<clClasseReserva>Y</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
<dsDisponibilidade>
<clClasseReserva>N</clClasseReserva>
<qtAssentosDisponiveis>7</qtAssentosDisponiveis>
</dsDisponibilidade>
</assentos>
<cdEquipamento>319</cdEquipamento>
<cdRefeicao>R</cdRefeicao>
<qtParadas>0</qtParadas>
<dsDiasOperacao>XS</dsDiasOperacao>
<cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico>
</voo>
</viagem>
</obterListaVoosSaida>
vcs podem reparar que existe tags viagem que se repetem e dentro da tag viagem existe a tag voo que se repete, alguem pode me ajudar a como serializar esse xml em obj.
Pedrosa 13 de mar. de 2007
Crie um bean que contém um arrayList do outro exemplo:
Ex:
private ArrayList < ItemDTO > itens ;
public ArrayList < ItemDTO > getItens () {
return itens ;
}
public void setItens ( ArrayList < ItemDTO > itens ) {
this .itens = itens ;
}
Transformando em xml
public static void main ( String [] args ) {
XStream xstream = new XStream ();
xstream . alias ( "envelope" , EnvelopeDTO . class );
xstream . alias ( "item" , ItemDTO . class );
ArrayList < ItemDTO > itens = new ArrayList < ItemDTO > ();
EnvelopeDTO envelope = new EnvelopeDTO ();
for ( int i = 0 ; i < 10 ; i ++ ){
ItemDTO iten = new ItemDTO ();
iten . setValorTotal ( i );
iten . setQtd ( i + 1 );
itens . add ( iten );
envelope . setItens ( itens );
}
System . out . println ( xstream . toXML ( envelope ));
}
Resultado ficaria assim:
<envelope>
<itens>
<item>
<qtd> 1</qtd>
<uni> 0.0</uni>
<t> 0.0</t>
</item>
<item>
<qtd> 2</qtd>
<uni> 0.0</uni>
<t> 1.0</t>
</item>
<item>
<qtd> 3</qtd>
<uni> 0.0</uni>
<t> 2.0</t>
</item>
<item>
<qtd> 4</qtd>
<uni> 0.0</uni>
<t> 3.0</t>
</item>
<item>
<qtd> 5</qtd>
<uni> 0.0</uni>
<t> 4.0</t>
</item>
<item>
<qtd> 6</qtd>
<uni> 0.0</uni>
<t> 5.0</t>
</item>
<item>
<qtd> 7</qtd>
<uni> 0.0</uni>
<t> 6.0</t>
</item>
<item>
<qtd> 8</qtd>
<uni> 0.0</uni>
<t> 7.0</t>
</item>
<item>
<qtd> 9</qtd>
<uni> 0.0</uni>
<t> 8.0</t>
</item>
<item>
<qtd> 10</qtd>
<uni> 0.0</uni>
<t> 9.0</t>
</item>
</itens>
</envelope>