Preciso ler o conteúdo do XML da nota fiscal eletrônica mas não estou conseguindo pegar o “valores” usando o nome do elemento com o JDcom.
[code]SAXBuilder sb = new SAXBuilder();
Document d = sb.build(new StringReader(xml));
Element notas = d.getRootElement();
List elements = notas.getChildren();
Iterator i = elements.iterator();
while (i.hasNext()) {
Element elemento = (Element) i.next();
if (elemento.getName().equals(“NFe”)) {
List dadosNota = elemento.getChildren();
Iterator iDados = dadosNota.iterator();
while (iDados.hasNext()) {
Element elementoDadoNota = (Element) iDados.next();
if (elementoDadoNota.getName().equals(“infNFe”)) {
System.out.println("Id = " + elementoDadoNota.getAttributeValue(“Id”));
//System.out.println("Nome: " + elementoDadoNota.getName());
Element infNFe = elementoDadoNota;
List dadosInfNFe = infNFe.getChildren();
Element ide = dadosInfNFe.get(0);
System.out.println(""+ide.getChildText("mod")); // aqui retorna null mas existe um filho de ide com o nome mod
List<Element> dadosIde = ide.getChildren();
System.out.println("==== "+dadosIde.get(0).getText()); // aqui aparece certo: 35 (primeiro elemento de ide)
}
}
}
}[/code]
Já estou achando horrível esse monte de while e if, não tem um jeito mais fácil?
Como faço?