Dúvida XStream!

9 respostas
rodrigo.fai

Olá pessoal!

A biblioteca XStream possibilita a geração de arquivos xml a partir de uma lista de objetos?
Se possível, como faço para verificar se o arquivo xml foi gerado com sucesso? Na verdade eu gostaria que fosse exbida uma caixa de diálogo para eu salvar este arquivo xml!

É possível?

Obrigado.

9 Respostas

Grinvon

Existem duas formas de você salvar um arquivo, uma usando a própria API do XStream, usando a PersistenceStrategy e XmlArrayList.

Nesse caso você passa como parâmetro a instância do objeto que você quer que ele converta para arquivo xml.

A outra (a que mais eu uso) é gerar uma string do XML em questão (usando o toXML) e dessa string eu mesmo a salvo num arquivo usando um FileWriter por exemplo.

Grinvon

Agora uma coisa…

Por favor se atenha a postar em local correto, essa questão se refere propriamente dita uma dúvida web.

rodrigo.fai

Grinvon:
Existem duas formas de você salvar um arquivo, uma usando a própria API do XStream, usando a PersistenceStrategy e XmlArrayList.

Nesse caso você passa como parâmetro a instância do objeto que você quer que ele converta para arquivo xml.

A outra (a que mais eu uso) é gerar uma string do XML em questão (usando o toXML) e dessa string eu mesmo a salvo num arquivo usando um FileWriter por exemplo.

Entendi!!!

Mais eu consigo gerar um xml apartir de uma lista de objetos(List) por exemplo?

Valew.

rodrigo.fai

Grinvon:
Agora uma coisa…

Por favor se atenha a postar em local correto, essa questão se refere propriamente dita uma dúvida web.

Mais eu estou utilizando este recurso em uma aplicação web!

Grinvon

rodrigo.fai:
Grinvon:
Agora uma coisa…

Por favor se atenha a postar em local correto, essa questão se refere propriamente dita uma dúvida web.

Mais eu estou utilizando este recurso em uma aplicação web!

Que seja numa aplicação web, mas a dúvida não é de um assunto web e sim de XML save parse etc.

Grinvon

rodrigo.fai:
Grinvon:
Existem duas formas de você salvar um arquivo, uma usando a própria API do XStream, usando a PersistenceStrategy e XmlArrayList.

Nesse caso você passa como parâmetro a instância do objeto que você quer que ele converta para arquivo xml.

A outra (a que mais eu uso) é gerar uma string do XML em questão (usando o toXML) e dessa string eu mesmo a salvo num arquivo usando um FileWriter por exemplo.

Entendi!!!

Mais eu consigo gerar um xml apartir de uma lista de objetos(List) por exemplo?

Valew.

Consegue sim, uma vez que vc definiu um “alias” para o XSteam, ele saberá como criar um XML a partir de seu bean, EX:

XStream lStream = new XStream();
        
        //alias
        lStream.alias("pessoa", Pessoa.class);
        lStream.alias("telefone", Telefone.class);
        
        Pessoa lPessoa = new Pessoa();
        lPessoa.setNome("Inocêncio");
        lPessoa.setEndereco("Av. Euclydes da Cunha");
        lPessoa.setIdade(28);
        
        Telefone lTelefone = new Telefone();
        lTelefone.setDdd(71);
        lTelefone.setNumero("[telefone removido]");

Nesse código acima eu crie um bean de pessoa e outro de telefone, uma pessoa pode ter N telefones, ou seja… N beans de telefone.

Veja que eu informeu ao XStream como iria chamar pessoa e telefone, e quais seriam os beans atribuídos.

String lXml = lStream.toXML(lPessoa);

Agora o lXml gerou um “arquivo” XML completo refere aos meus beans.

rodrigo.fai
Grinvon:
rodrigo.fai:
Grinvon:
Existem duas formas de você salvar um arquivo, uma usando a própria API do XStream, usando a PersistenceStrategy e XmlArrayList.

Nesse caso você passa como parâmetro a instância do objeto que você quer que ele converta para arquivo xml.

A outra (a que mais eu uso) é gerar uma string do XML em questão (usando o toXML) e dessa string eu mesmo a salvo num arquivo usando um FileWriter por exemplo.

Entendi!!!

Mais eu consigo gerar um xml apartir de uma lista de objetos(List) por exemplo?

Valew.

Consegue sim, uma vez que vc definiu um "alias" para o XSteam, ele saberá como criar um XML a partir de seu bean, EX:

XStream lStream = new XStream();
        
        //alias
        lStream.alias("pessoa", Pessoa.class);
        lStream.alias("telefone", Telefone.class);
        
        Pessoa lPessoa = new Pessoa();
        lPessoa.setNome("Inocêncio");
        lPessoa.setEndereco("Av. Euclydes da Cunha");
        lPessoa.setIdade(28);
        
        Telefone lTelefone = new Telefone();
        lTelefone.setDdd(71);
        lTelefone.setNumero("[telefone removido]");

Nesse código acima eu crie um bean de pessoa e outro de telefone, uma pessoa pode ter N telefones, ou seja... N beans de telefone.

Veja que eu informeu ao XStream como iria chamar pessoa e telefone, e quais seriam os beans atribuídos.

String lXml = lStream.toXML(lPessoa);

Agora o lXml gerou um "arquivo" XML completo refere aos meus beans.

Saquei!!!

Após criar o alias eu conseguiria gerar o xml utilizando o seguinte codigo por exemplo?

toXML(listProjetosPrestadosConta);

Sendo que listProjetosPrestadosConta é do tipo List!

Grinvon

Ele gera um XML numa String, daí vc pode salvar a string usando um FileWriter por exemplo, ou usar a própria estrutura do XStream utilizando o XmlAsArray e Strategy

rodrigo.fai

Essa classe XmlAsArray é de outra api? Pois não encontrei na api do XStream!

Criado 17 de abril de 2009
Ultima resposta 17 de abr. de 2009
Respostas 9
Participantes 2