Olá Pessoal. Eu preciso varrer uma árvore xml e obter os nomes e atributos dos nodos folhas. Estou usando DOM e criei uma função recursiva que funciona mas
imprime uns valores estranhos.
O XML que estou usando:
<automato>
<simbolos>
<simbolo caracter="a">A</simbolo>
<simbolo caracter="b">B</simbolo>
<simbolo caracter="c">C</simbolo>
</simbolos>
<estados>
<estado id="1" inicial="true" terminal="false" caracter="A" />D1</estado>
<estado id="2" inicial="false" terminal="false" caracter="B"></estado>
<estado id="3" inicial="false" terminal="true" caracter="C"></estado>
</estados>
<transicoes>
<transicao origem="A" destino="B" simbolo="a"></transicao>
<transicao origem="B" destino="A" simbolo="b"></transicao>
<transicao origem="C" destino="C" simbolo="c"></transicao>
</transicoes>
</automato>
A função:
private void obterNomeValor(Node nodo){
if(!nodo.hasChildNodes())
System.out.println("Nome nodo folha "+nodo.getNodeName()+" valor "+nodo.getNodeValue());
NodeList children = nodo.getChildNodes();
for(int i=0;i<children.getLength();i++){
Node novonodo = children.item(i);
obterNomeValor(novonodo);
}
}
Esses são os valores imprimidos:
Nome nodo folha #text valor
Nome nodo folha #text valor
Nome nodo folha #text valor A
Nome nodo folha #text valor
Nome nodo folha #text valor B
Nome nodo folha #text valor
Nome nodo folha #text valor C
Nome nodo folha #text valor
Nome nodo folha #text valor
Nome nodo folha #text valor
Nome nodo folha #text valor D1
Nome nodo folha #text valor
Nome nodo folha estado valor null
Nome nodo folha #text valor
Nome nodo folha estado valor null
Nome nodo folha #text valor
Nome nodo folha #text valor
Nome nodo folha #text valor
Nome nodo folha transicao valor null
Nome nodo folha #text valor
Nome nodo folha transicao valor null
Nome nodo folha #text valor
Nome nodo folha transicao valor null
Nome nodo folha #text valor
Nome nodo folha #text valor
Ou seja, a função esta imprimindo tudo! E eu queria apenas os nodos folhas. Alguém sabe o que eu posso fazer? Obrigado!