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 😉