Pessoal, tenho um arquivo XML dessa forma:
<?xml version="1.0"?>
<alunos>
<aluno>
<nome>José Carlos Ramos</nome>
<ra>222222222</ra>
<email>zecarlos@uol.com.br</email>
<disciplinas>
<disciplina>
<nome>Traumatologia</nome>
<novidades> bla bla bla </novidades>
</disciplina>
<disciplina>
<nome>Pediatria</nome>
<novidades>bla bla bla </novidades>
</disciplina>
<disciplina>
<nome>Clinica Geral</nome>
<novidades> bla bla </novidades>
</disciplina> </disciplinas>
</aluno>
</alunos>
NOTEM: Cada aluno do XML pode ter N disciplinas…
Como faço para ler as disciplinas de cada aluno durante o parser???
Tentei o codigo abaixo mas naum deu certo:
NodeList nl = elem.getElementsByTagName("aluno");
//Prepara o vetor.
Vector alunos = new Vector();
//Percorre cada elemento usuario Encontrado
for(int i=0;i<nl.getLength();i++){
Element aluno = (Element)nl.item(i);
String ra = getChildTagValue(aluno, "ra");
String nome = getChildTagValue(aluno, "nome");
String email = getChildTagValue(aluno, "email");
NodeList nlD = aluno.getElementsByTagName("disciplina");
List listaDisciplinas = new ArrayList();
for(int j = 0; j < nlD.getLength(); j++){
Element elemD = (Element)nlD.item(j);
String titulo = getChildTagValue(elemD,"nome");
String novidade = getChildTagValue(elemD,"novidades");
Disciplina d = new Disciplina(titulo,novidade);
//Adiciona a disciplina na collection de Disciplinas
listaDisciplinas.add(d);
}
//Cria uma instancia da classe usuario guj.
Aluno a = new Aluno(ra,nome,email,listaDisciplinas);
//adiciona na colecao
alunos.addElement(a);
}
return alunos;
private String getChildTagValue(Element elem, String tagName){
NodeList children = elem.getElementsByTagName(tagName);
if(children == null)return null;
Element child = (Element)children.item(0);
if(child == null) return null;
return child.getFirstChild().getNodeValue();
}
Atenção que faço um looping dentro do outro… mas naum funcionou…
Alguém poderia me ajudar?
Abraços,
Mateus