Amigos estou com um problema para ler um determinado XML, meu problema é o seguinte:
Tenho um XML com uma estrutura um pouco complexa, como exemplo este aqui vai mostrar bem o que eu preciso.
<Agenda>
<Contato id="01">
<nome>nononononono</nome>
<telefone>
<residencial>121212121</residencial>
<celular>[telefone removido]</celular>
</telefone>
<endereco>Alguma rua, 000</endereco>
<email>[email removido]</email>
</Contato>
<Contato id="02">
<nome>anananananananan</nome>
<telefone>
</residencial>
<celular>123456789</celular>
</telefone>
<endereco>Casa das primas, 123</endereco>
<email>[email removido]</email>
</Contato>
</Agenda>
Consigo ler um XML simples usando o JDOM que é o que vou usar pois vou precisar guardar os valores das tags para validar as informações e depois jogar em um banco, bom meu problema é ler essas estrutura mais complexa, digo vários galhos em determinadas partes , como faço pra sair do nó principal e ir para o proximo nivel ???
o que faço hoje é mais ou menos assim:
public class LeitorXmlJdom {
public void leitorXml(Config config) {
Document doc = null;
SAXBuilder builder = new SAXBuilder();
try {
doc = builder.build(config.getPathXml());
} catch (Exception e) {
e.printStackTrace();
}
Element agenda = doc.getRootElement();
List<Element> lista = agenda.getChildren();
for (Element e : lista) {
System.out.println("Contato: " + e.getAttributeValue("id"));
System.out.println("Nome: " + e.getChildText("nome"));
System.out.println("Residencial: " + e.getChildText("residencial"));
//não tenho idéia de como ir para este nó e depois voltar, imagino que tenha que usar algum for para subir o nó e ler mas não
//tenho idéia de como fazer isso
System.out.println("Telefones:");
System.out.println("Residencial: " + e.getChildText("residencial"));
System.out.println("Celular: " + e.getChildText("celular"));
System.out.println("Endereço: " + e.getChildText("endereco"));
System.out.println("E-mail: " + e.getChildText("email"));
}
}
}
Este é um exemplo do que to fazendo, bom para terem a dimensão do problema tenho que ler um arquivo XML da NF-e, validar ele, para depois jogar no banco, e a unica parte que estou tendo problemas é na leitura do arquivo, se alguem poder me ajudar, valew…