Ir para conteúdo
  • Cadastre-se

dev botao

Ao realizar o LoadFromfile e depois o Assinar ocorre: Falha ao interpretar o XML "xmlParseDoc" --> 23 - EntityRef: expecting ';'


Ver Solução Respondido por HelioNeto,
  • Este tópico foi criado há 559 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa Tarde!

No meu XML, gero o Nome Fantasia do Destinatário nos Dados Adicionais: tag <infCpl>

Quando este nome tem & está trocando para "&amp;" que é correto, então salva corretamente.

Quando carrego um XML por:

ACBrNFe.NotasFiscais.LoadFromFile(PathArquivoXML);

E Logo em seguida realizo a Assinatura:

ACBrNFe.NotasFiscais.Assinar;

Ocorre o Erro:  Falha ao interpretar o XML "xmlParseDoc" --> 23 - EntityRef: expecting ';'

Analisando o Código fonte da ACBr observei que no TNotasFiscais.LoadFromFile é executado:

1- TNotasFiscais.LoadFromString;

2- NotaFiscal.LerXML;

3-ACBrUtil.XMLHTML.ParseText;

na Function ParseText é executado:

Astr := InternalStringReplace(AStr, '&amp;'   , '&');

Voltando para somente "&"

Depois ainda executa o:

4- TNFeR.LerXml

5- Leitor.rCampo

na Function rCampo quando o campo é tcStr

É executado o pcnAuxiliar.ReverterFiltroTextoXML

Que contém o código:

aTexto := StringReplace(aTexto, '&amp;', '&', [rfReplaceAll]);

Ou seja, quando eu for realizar a Assinatura vai ocorrer o Erro: Falha ao interpretar o XML "xmlParseDoc" --> 23 - EntityRef: expecting ';'

Se eu comentar as duas linhas desse código que fazem o replace, só para testar, Funciona Perfeitamente.

Mas Também entendo que esta não é a Solução pois o LoadFromfile é usado em Inúmeras situações e se comentar essa parte pode ocorrer outro tipo de erro.

Como devo proceder nesse caso?

utilizo a montagem do XML pelo TXMLDocument, Salvo no Disco, Utilizo os fontes da ACBr para Assinar, Validar e Enviar os Documentos.

Tem uma outra opção que não seja ACBrNFe1.NotasFiscais.Add, tendo em vista que eu precisaria refatorar todo o código somente por conta do "&" 

Alguém poderia me sugerir algo?

Segue em anexo o XML Antes de Assinar que é como eu carrego no LoadFromFile.

Desde já agradeço!

NF-e50230402250994000120550010001606581118044150-nfe.xml

  • 4 semanas depois ...
  • Solution
Postado

Bom dia!

Para ficar Registrado aqui, a Solução que encontrei foi a de:

- Ao invés de usar o LoadFromFile, alimentar o Objeto completo através do ACBrNFe1.NotasFiscais.Add e em seguida usar o Método "GerarNFe".

Tópico pode ser fechado.

  • Consultores
Postado

Topico fechado a pedido do usuário. Para novas dúvidas favor abrir novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Este tópico foi criado há 559 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...