Ajuda com List envolvendo XML

3 respostas
G

List amigos = (List) xstream.fromXML(contatosEmXML); Pessoa amigo = (Pessoa) amigos.get(0); Telefone foneDoAmigo = amigo.getFoneComercial();

por favor alguem pode me explicar o que esta acontecendo aqui não intendi o uso da lista eu sei o basico … porém acho que abstrairam um pouco para o que aprendi …

por favor ajuda …

3 Respostas

renzonuccitelli

Posta o erro que deu se não fica impossível. Mas uma coisa vc não fez, ver se a lista tinha algum elemento antes de tentar acessá-lo. Tem que fazer isso usando o método size da lista.

G
package xml;

import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.XStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.swing.JOptionPane;

        
public class Main {

    public static void main(String[] args) {
        String contatosEmXML;
        // Configurando XStream		
        XStream xstream = new XStream();
        //Criando Lista de Objetos qualquer
        List contatos = new ArrayList(1);
        // Criando alguns dados
        Pessoa P1 = new Pessoa();
        P1.setNome("Universidade Federal do ABC");
        P1.setEmail("[email removido]");

        Pessoa P2 = new Pessoa();
        P2.setNome("Guilherme dos Santos Marques");
        P2.setEmail("[email removido]");

        
        
        Telefone foneDoP1 = new Telefone();
        foneDoP1.setDdd(11);
        foneDoP1.setNumero("0000-0000");

        Telefone foneDoP2 = new Telefone();
        foneDoP2.setDdd(11);
        foneDoP2.setNumero("111-111");

        P1.setFoneComercial(foneDoP1);
       
        P2.setFoneComercial(foneDoP2);
         
        contatos.add(P1);
        contatos.add(P2);

        // Passando os dados de Objetos Java para XML
        contatosEmXML = xstream.toXML(contatos);

        System.out.println("\nContatos em XML:");
        System.out.println(contatosEmXML);
        JOptionPane.showMessageDialog(null, "Amigo com Objeto em XML\n" + contatosEmXML);
       try{
        FileWriter xml =new FileWriter("Teste.XML");
        PrintWriter escreve=new PrintWriter(xml);
        escreve.print(contatosEmXML);
        escreve.flush();
        escreve.close();
       }catch(Exception X){
       System.out.print("Erro");
       }
           
        
        
        // Passando os dados de XML para Objetos Java
     
        //*/ 
        //modo explicado
        List amigos = (List) xstream.fromXML(contatosEmXML);
        Pessoa amigo = (Pessoa) amigos.get(0);
        Telefone foneDoAmigo = amigo.getFoneComercial();

        System.out.println("\nAmigo como Objeto Java:");
        System.out.println("Nome: " + amigo.getNome());
        System.out.println(
                "Fone Comercial: (" + foneDoAmigo.getDdd() + ") " + foneDoAmigo.getNumero());
        JOptionPane.showMessageDialog(null, "Amigo como Objeto Java\nNome: " + amigo.getNome() +
                "\nTelefone comercial: " + foneDoAmigo.getDdd() + "  " + foneDoAmigo.getNumero());
       /*/ 
        
       //*/
      
  
       //*/
    }
}

Renzo vc já trabalhou com XStream

Alguem me explica como estão colocando os dados nas posições certas quando você transforma o XML em Objeto?

G

Então escrever um XML eu já consigo pelo XStream, porém eu não consigo tyransformar ele eem classes do java direito…
Esse arquivo ta funcionando só que a parte que esta ai no projeto é do tutorial a parte que mandei antes e não sei o que ele ta fazendo … não quero apenas copiar codigo tenho que intender o que se acontece …

Criado 22 de setembro de 2008
Ultima resposta 22 de set. de 2008
Respostas 3
Participantes 2