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 😉
cara Muio bom, me salvou a pele, achei muito simples e direto… gostei, meus parabens
como faço para pegar o numero da NFe, com o xml carregado no ACBR amigos?
So usar acbrnfe.notasfiscais.items[0].nfe.ide.nNf;
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.
Amigo como eu faço para importar a data da nota? e converte-la para o formato dd/mm/aaa?
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,
Sim. Basta editar no campo específico e usar o comando salvar.
Fernando, muito bom o exemplo, me ajudou muito, objetivo e claro.
Obrigado, O Senhor lhe Abençoe, e sucesso.