Estou tentando fazer a leitura do seguinte XML com JDON:
<?xml version="1.0" encoding="UTF-8"?>
<registros>
<referencia ano="2017">
<bimestre>
<nome>1º Bimestre</nome>
<texto>algum texto 1</texto>
<arquivo>Financeiras\LDO\LDO1.pdf</arquivo>
</bimestre>
<bimestre>
<nome>2° Bimestre</nome>
<texto>algum texto 2</texto>
<arquivo>Financeiras\LDO\LDO2.pdf</arquivo>
</bimestre>
</referencia>
<referencia ano="2016">
<bimestre>
<nome>1° Bimestre</nome>
<texto>algum texto 3</texto>
<arquivo>Financeiras\LDO\LDO3.pdf</arquivo>
</bimestre>
<bimestre>
<nome>2° Bimestre</nome>
<texto>algum texto 4</texto>
<arquivo>Financeiras\LDO\LDO4.pdf</arquivo>
</bimestre>
</referencia>
</registros>
O método que faz a leitura é esse:
private void montaDadosDataTable() throws JDOMException, IOException {
File f = new File(this.getArquivoXML()); //aqui eu busco o caminho do meu arquivo xml
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(f);
Element root = (Element) doc.getRootElement();
List objetos = root.getChildren();
Iterator i = objetos.iterator();
while (i.hasNext()) {
Element obj = (Element) i.next();
System.out.println("Referencia: "+obj.getAttributeValue("ano"));
System.out.println("Bimestre: "+obj.getChild("bimestre").getChildText("nome") );
System.out.println("Descrição: "+obj.getChild("bimestre").getChildText("texto") );
System.out.println("Arquivo: "+obj.getChild("bimestre").getChildText("arquivo"));
}
}
O problema desse método é que ele so me mostra os dados do primeiro bimestre de cada referência, o que estou fazendo errado? Desde já agradeço…