XML para Vector

1 resposta
P

Tenho o seguinte código que gera um arquivo xml

Vector v = new ExecutarSql().consultaTodosContatos();
		Object ob = v;
		
		
				
		XMLEncoder encXML;   
        try   
        {   
            encXML = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(   
                    "C:\teste.xml")));   
            encXML.writeObject(v);
            encXML.close();   
        }   
        catch (Exception e)   
        {   
        	System.out.println("Erro: "+e);
        }

Vector v = new ExecutarSql().consultaTodosContatos() - retorna uma colecao de array de String [2] contendo nome e tefone dos contatos

Meu código gera o seguinte xml:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.6.0_01" class="java.beans.XMLDecoder"> 
 <object class="java.util.Vector"> 
  <void method="add"> 
   <array class="java.lang.String" length="2"> 
    <void index="0"> 
     <string>Uliana</string> 
    </void> 
    <void index="1"> 
     <string>32487954</string> 
    </void> 
   </array> 
  </void> 
  <void method="add"> 
   <array class="java.lang.String" length="2"> 
    <void index="0"> 
     <string>Paulo</string> 
    </void> 
    <void index="1"> 
     <string>38452977</string> 
    </void> 
   </array> 
  </void> 
  <void method="add"> 
   <array class="java.lang.String" length="2"> 
    <void index="0"> 
     <string>Uliana</string> 
    </void> 
    <void index="1"> 
     <string>87898856</string> 
    </void> 
   </array> 
  </void> 
  <void method="add"> 
   <array class="java.lang.String" length="2"> 
    <void index="0"> 
     <string>Uliana</string> 
    </void> 
    <void index="1"> 
     <string>84658950</string> 
    </void> 
   </array> 
  </void> 
 </object> 
</java>

Li alguns tópicos aqui sobre como ler XML da seguinte forma:

// percorre cada elemento usuario encontrado
         for( int i=0; i<nl.getLength(); i++ ) {
             Element tagUsuario = (Element) nl.item( i );
       
             // pega os dados cadastrado para o usuario atual
             int id = Integer.parseInt( tagUsuario.getAttribute( "id" ) );
             String nome = getChildTagValue( tagUsuario, "nome" );
             Integer idade = new Integer( getChildTagValue( tagUsuario, "idade" ) );
             String email = getChildTagValue( tagUsuario, "email" ); 
       
             // cria uma nova instancia do UsuarioGuj com os dados do xml
             UsuarioGUJ usuarioGuj = new UsuarioGUJ( id, nome, idade, email );
       
             // adiciona o usuario na coleção (vector) de usuários do guj
             usuarios.addElement( usuarioGuj );
         }
     
         return usuarios;
     }

Mas o problema é que não consegui usar esta solução porque não sei os nomes das tags geradas pelo XMLEncorder

Gostaria de saber como faço para obter um Vector através deste XML?

antecipadamente, Obrigado.

1 Resposta

P

problema resolvido da seguinte maneira:

try
	{
            InputStream in = new FileInputStream("C:\teste.xml");
            XMLDecoder teste = new XMLDecoder(in);
            java.util.Vector v = (java.util.Vector)teste.readObject();
            for(int i=0;i<v.size();i++){
                String [] s = (String [])v.get(i);
                System.out.println(s[0]+" - "+s[1]);
            }
	}
	catch(Exception e)
	{
		
	}
Criado 19 de novembro de 2007
Ultima resposta 19 de nov. de 2007
Respostas 1
Participantes 1