Leitura de XMLs... [RESOLVIDO]

1. Leitura de XMLs... [RESOLVIDO]

Danilo Roberto Floriano
dafloria

(usa Ubuntu)

Enviado em 20/10/2010 - 16:17h

Tudo bem pessoal...

Sou iniciante em java e estou com muita dificuldade para desenlver um aplicativo até que bem simples.

Estou precisando muito da ajuda de vocês para resolver um problema com XMLs.

Preciso pegar o valor da tag <nNF>...</nNF> de XMLs de Notas fiscais eletrônicas. Estou tentando utilizar o JDOM para isso. Mas o valor retornado é sempre nulo.
Segue o código:

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException, JDOMException {

Leitura dados = new Leitura();

File diretorio = new File("C://Teste");
String arquivos[] = diretorio.list();
for (int i = 0; i < arquivos.length; i++) {
System.out.println(arquivos[i]);
File name = new File(diretorio + "//" + arquivos[i]);
if (name.exists()) {
if (name.isFile()) {
SAXBuilder sb = new SAXBuilder();
Document d = sb.build(name);
Element Nfe = d.getRootElement();
System.out.println(Nfe.getChildText("nNF"));
}
}
}

}

}

Exemplo de saída:

135100541934281_v1.10-procNFe.xml
null

Onde está esse null, deveria sair o número da NFe.

Essa é a cara do XML:

<?xml version="1.0" encoding="UTF-8" ?>
- <nfeProc versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">
- <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
- <infNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="NFe35101061087581000135550010000004613693200030" versao="1.10">
- <ide>
<cUF>35</cUF>
<cNF>369320003</cNF>
<natOp>VENDA PROD ESTAB</natOp>
<indPag>1</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>461</nNF>
<dEmi>2010-10-15</dEmi>
...

Agradeço muito se algem puder me ajudar.
Desde já muito obrigado.


  


2. Leitura de XMLs...

Danilo Roberto Floriano
dafloria

(usa Ubuntu)

Enviado em 21/10/2010 - 09:02h

Consegui resolver o problema utilizando a biblioteca dom, como segue:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(name);
NodeList nodes = doc.getElementsByTagName("ide");
for (int j = 0; j < nodes.getLength(); j++) {
Element elemento = (Element) nodes.item(j);

NodeList nome = elemento.getElementsByTagName("nNF");
Element linha = (Element) nome.item(0);

System.out.println("Número NFe: " + linha.getTextContent());

Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts