Duvida com xStream

Fala pessoal;

Estou trabalhando com a biblioteca Xtream para manipulação de arquivos XML.

Eu dei uma boa pesquisa e entendi mais ou menos como funciona seus métodos.

meus registros estão estruturados em dois arraylists: o primeiro com o nome da chave e o segundo com o valor, por exemplo:

Posição 0 do primeiro arrayList tem a String: Nome
posição 0 do segundo arrayList tem a String: Marcelo
posição 1 do primeiro arrayList tem a String: Telefone
posição 1 do segundoarrayList tem a String: (11)9149443

E assim por diante

entenderam?

Não estou conseguindo tranfomar isso em XML, minha saida atual é:

Nome
Telefone
Escola
Nota

segue abaixo o codigo:

public void write() throws IOException
	{
		
		ArrayList<String> primeiroTeste = new ArrayList<String>();
		ArrayList<String> segundoTeste = new ArrayList<String>();
		

		
		
		primeiroTeste.add("Nome");
		primeiroTeste.add("Telefone");
		primeiroTeste.add("Escola");
		primeiroTeste.add("Nota");
		
		
		segundoTeste.add("Marcelo");
		segundoTeste.add("(11)92323424");
		segundoTeste.add("USP");
		segundoTeste.add("9,2");

		XStream xStream = new XStream();
		xStream.alias("registros", LinkedList.class);
		
		for(int i = 0; i < segundoTeste.size(); i++){
			xStream.alias(segundoTeste.get(i), String.class);
		}
		
		File arquivo = new File("teste.xml");
		@SuppressWarnings("resource")
		FileOutputStream gravar = new FileOutputStream(arquivo);
		gravar.write(xStream.toXML(segundoTeste).getBytes());
		gravar.close();
		
	}

}

Soh uma pergunta: Porque vc nao cria uma classe para Aluno, ao invez de manter duas listas, fica muito complicado.

public class Aluno {
   String Nome;
   String Telefone;
   String Escola;
   Double Nota;
}

Ai vc pode ter uma lista de alunos:

List<Aluno> alunos = new ArrayList<Aluno>();

Fica bem mais facil para vc serializar e deserializar os dados.
Se vc olhar o primeiro exemplo: http://xstream.codehaus.org/converter-tutorial.html
//Daniel

Da uma lida nesse tutorial Manipulando Arquivo XML ? Parte III: XStream

windsofhell,

Sim, eu sei que ficaria muito mais facil.Mas o problema (que eu acabei nao comentando) é que eu posso receber estes dois arraylist a partir de qualquer estrutura.

Por exemplo, em vez de nome telefone eu poderia receber apelido ou email, entende? meu registro não é fixo, o que vier nestes arraylists eu tenho q me virar e trabalhar com eles

[quote=MarceloRocks]windsofhell,

Sim, eu sei que ficaria muito mais facil.Mas o problema (que eu acabei nao comentando) é que eu posso receber estes dois arraylist a partir de qualquer estrutura.

Por exemplo, em vez de nome telefone eu poderia receber apelido ou email, entende? meu registro não é fixo, o que vier nestes arraylists eu tenho q me virar e trabalhar com eles[/quote]

Mas tenho quase certeza que dessa forma o XStream não trabalha. Ele trabalha com classes e associa os atributos das classes aos elementos do XML. Da forma que você pretende fazer, ele não terá como fazer essa associação.

Pois é cara, eu imaginei isto tambem…

Andei dando uma pesquisa, quase todas as API de XML tem esta limitação tambem.

Voce conhece alguma que não tenha?

Abraço

[quote=MarceloRocks]Pois é cara, eu imaginei isto tambem…

Andei dando uma pesquisa, quase todas as API de XML tem esta limitação tambem.

Voce conhece alguma que não tenha?

Abraço[/quote]

Sim conheço, vai te dar um pouco mais de trabalho, mas acho que vai servir. Você tem 2 opções, usar Manipulando Arquivo XML ? Parte II: JDOM ou Manipulando Arquivo XML ? Parte I: API Nativa