Lendo XML da NFe [com Delphi]


UPDATE: Adicionei no meu Github um exemplo com fontes. O endereço é este aqui: https://github.com/simasware/acbrNFeExemplo

Vejo que um dos posts mais visitados do blog é sobre leitura de XML com o Delphi. E como a maioria das pesquisas vem como ‘ler xml nfe’ etc, resolvi fazer um post sobre isto!

Para tal, utilizarei a biblioteca ACBr (uma excelente suíte de componentes para automação comercial). Não detalharei sobre a instalação do componente etc (você pode ver aqui: http://acbr.sourceforge.net/drupal/?q=node/20).

Carregando o XML

Na paleta de componentes do ACBr, existe o componente ACBrNFe, adicione ao formulário. Abaixo o trecho de código para carregar o arquivo.

//...
if OpenDialog1.execute then
Acbrnfe1.loadFromFile(OpenDialog1.fileName);
//...

A cada LoadFromFile que é feito no componente, é adicionado um item numa lista de NFe, ou seja, o componente ACBrNFe armazena as notas carregadas num TCollection. Para acessar os dados, você pode fazer da seguinte maneira:

//exibo o modelo da NFe num messageBox
showMessage(Acbrnfe1.NotasFiscais.Items[0].NFe.Ide.modelo);

//...

Na documentação do ACBr, você pode encontrar detalhadamente os métodos/propriedades para retornar os dados desejados.

Espero que tenha ajudado.

Até a próxima 😉

9 comentários sobre “Lendo XML da NFe [com Delphi]

  1. Pingback: Lendo XML com o Delphi « simasware blog
  2. Eu uso o acbr mas nunca reparei que o componente armazenava as notas com loadfromfile, isso me ajudou muito porque tenho que carregar os xmls para gerar o sped fiscal. Valeu Fernando.

  3. Muito bom o post!! Ajudou muito.

    Agora existe a possibilidade de eu editar a hora por exemplo? As vezes o cliente não atenta para o horário de verão.

    grato,

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.