Tenho um XML como exibido abaixo:
<bedemak>
<filial id="filial-01">
<endereco>Rua Canto do Sabiá, 438</endereco>
<fone>11 0000-0000</fone>
<gerente>Fulano de Tal</gerente>
</filial>
<filial id="filial-02">
<endereco>Avenida Estados Unidos, 237</endereco>
<fone>11 9999-9999</fone>
<gerente>Joãozinho da Pimboca</gerente>
</filial>
</bedemak>
Tenho um JTree() num JForm() representando este XML manualmente nas propriedades do componente.
Obs.: Sim, já tentei importar o XML para dentro do JTree mas não consegui. Seria o meu sonho. Caso alguém possa me ajudar nisso, serei ETERNAMENTE grato, rs.
Problema: quando clico no JTree correspondente a FILIAL 01, os dados exibidos são da FILIAL 02. Parece que está passando direto. E como já testei com todas as filiais, de fato, o exibido sempre está sendo o último. Meu código a seguir:
try {
File file = new File("src/bedemak.xml");
SAXBuilder builder = new SAXBuilder();
Document document = (Document) builder.build(file);
Element tag = (Element) document.getRootElement();
List detalhes = tag.getChildren();
Iterator i = detalhes.iterator();
while (i.hasNext() == true) {
Element unidade = (Element) i.next();
/* Exibindo o conteúdo das TAGs numa JLabel() */
v_NomeUnidade.setText(unidade.getAttibuteValue("id"));
v_Endereco.setText(unidade.getChild("filial").getChildText("endereco"));
v_Fone.setText(unidade.getChild("filial").getChildText("fone"));
v_Gerente.setText(unidade.getChild("filial").getChildText("gerente"));
}
} catch (JDOMException | IOException ex) {
JOptionPane.showMessageDialog(null, "Não foi possível localizar os dados desta Filial.", "Erro...", 0);
}
O que estou fazendo de errado?