Depois de ler sobre vários parser xml, como JDom, SAX, decidi usar o XStream para meus primeiros testes com xml, consegui fazer um exemplo funcional mas só consigo ler o primeiro contato do xml, não consigo iterar com os demais contatos. Tenho poucos conhecimentos sobre xml, tanto que nem sei que palavras chaves deveria colocar no Google para pesquisar. Seque abaixo o fonte do meu exemplo:
Main[code]
package testexml2;
import java.io.FileNotFoundException;
import java.io.FileReader;
import com.thoughtworks.xstream.XStream;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
XStream xstream = new XStream();
xstream.alias("contato", Pessoa.class);
FileReader reader = new FileReader("pessoa.xml");
Pessoa pessoa = (Pessoa) xstream.fromXML(reader);
// Como faço essa iteração para o próximo contato?
//for()){
System.out.println(pessoa.getNome());
System.out.println(pessoa.getSobrenome());
System.out.print(pessoa.getTel().getCodigo() + " ");
System.out.println(pessoa.getTel().getNumero());
// }
}
}[/code]
Pessoa[code]package testexml2;
public class Pessoa {
private String nome;
private String sobrenome;
private NumeroTelefone tel;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
public NumeroTelefone getTel() {
return tel;
}
public void setTel(NumeroTelefone tel) {
this.tel = tel;
}
public Pessoa(String nome, String sobrenome) {
this.nome = nome;
this.sobrenome = sobrenome;
}
public void setNumeroTelefone(NumeroTelefone tel) {
this.tel = tel;
}
}[/code]
NumeroTelefone[code]package testexml2;
public class NumeroTelefone {
private int codigo;
private String numero;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public NumeroTelefone(int codigo, String numero) {
this.codigo = codigo;
this.numero = numero;
}
}[/code]
Pessoa.xml<contato>
<nome>Gledson</nome>
<sobrenome>Fagundes</sobrenome>
<tel>
<codigo>11</codigo>
<numero>9595-0000</numero>
</tel>
</contato>
<contato>
<nome>Gustavo</nome>
<sobrenome>Fagundes</sobrenome>
<tel>
<codigo>13</codigo>
<numero>9292-0000</numero>
</tel>
</contato>
Só consigo esta saída no terminal:
[color=red]Gledson
Fagundes
11 9595-0000[/color]
Sendo que o desejado seria:
[color=red]Gledson
Fagundes
11 9595-0000
Gustavo
Fagundes
13 9292-0000[/color]
Agradeço a ajuda de todos! Vou dormir… num aguento mais rsrsrs
03:00 - Três da manhã agora…