Ao tentar fazer a leitura de um XML, conforme a imagem do mesmo em anexo, verifiquei que a tag, indicada na imagem, não esta sendo verificada no fonte, ou melhor, ela esta sendo mas falta outra condição.
Na unit pnfsNFSeR, encontra-se duas funções que se chamam: LerNFSe_ABRASF_V1 e LerNFSe_ABRASF_V2.
A função LerNFSe_ABRASF_V2 contêm a seguinte condição para carregar as informações do tomador:
if (Leitor.rExtrai(3, 'Tomador') <> '') or (Leitor.rExtrai(3, 'TomadorServico') <> '') or
(Leitor.rExtrai(2, 'Tomador') <> '') or (Leitor.rExtrai(2, 'TomadorServico') <> '') then
Porém, na função LerNFSe_ABRASF_V1 o mesmo local que carrega as informações do tomador está assim:
if Leitor.rExtrai(3, 'TomadorServico') <> '' then
E conforme a imagem do XML que anexei, a tag esta vindo como <Tomador> e esta sendo executado pela função LerNFSe_ABRASF_V1, e consequentemente não carrega as informações.
A solução que encontrei foi fazer do mesmo jeito que a LerNFSe_ABRASF_V2
if (Leitor.rExtrai(3, 'Tomador') <> '') or (Leitor.rExtrai(3, 'TomadorServico') <> '') then
Desse jeito, as informações as informações são carregadas normalmente.
OBS.: A versão que usei de exemplo acima não é a ultima, porém, antes de fazer esse post, fiz essa verificação também na ultima versão e encontrei o mesmo problema.