Pessoal meu primeiro post no forum para pedir uma ajuda. Já acompanho o forum a um bom tempo somente lendo os posts.
Bom já li varios tutoriais sobre o JDOM e as apis de XML para java como:
Utilizando JDOM para ler e gerar XML
Manipulando Arquivo XML ? Parte II: JDOM
Reading an XML document using JDOM
Porem esbarro em um problema que esta me deixando de cabelo branco. Estou tentando importar de um arquivo xml de NF-e algumas informações como:
CNPJ Emitente
CNPJ Destinatario
Valor total da Nota.
Porem só estou consigo chegar até o cnpj do emitente e isso usando o get(int index) e passando o index na unha. Quando tento usar o getChild(“string”) sempre retorna null.
Vejam um código de teste que fiz:
public class TesteJDom2 {
public static void main(String[] args) {
Document document = null;
SAXBuilder builder = new org.jdom2.input.SAXBuilder();
try {
document = builder.build("D:\\XML\\NFe42130305063146000108550010001580261000225602-nfe-proc.xml");
} catch (JDOMException ex) {
Logger.getLogger(TesteJDOM.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(TesteJDOM.class.getName()).log(Level.SEVERE, null, ex);
}
Element root = document.getRootElement();
System.out.println("Nome da root: " + root.getName());
List<Element> elements = root.getChildren();
System.out.println("Tamanho da lista: " + elements.size());
//imprime o nome dos elements
for (Element e : elements) {
System.out.println("Nome do Element: " + e.getName());
}
//tenta pegar a child NFe
Element nfeElement = root.getChild("NFe");
//imprimi o nome do element dever ser NFe
System.out.println("Nome do nfeElement: " + nfeElement.getName());
}
}
A saida é a seguinte:
Nome da root: nfeProc
Tamanho da lista: 2
Nome do Element: NFe
Nome do Element: protNFe
Exception in thread "main" java.lang.NullPointerException
at Teste.TesteJDom2.main(TesteJDom2.java:51)
Java Result: 1
Percebam que a lista tem dois Elements e que um deles se chama “NFe”.
Porem quanto tento pega-lo pelo root.getChild(“NFe”) e passo pro nfeElement, ao acessar qualquer propriedade dele recebo um NullPointerException.
Sei que estou fazendo algo de errado só não consegui descobrir o que ainda.
Se alguém puder me ajudar fico grato.
[ ]'s
