Olá boa tarde,
Na transmissão de XML alguns caracteres precisam ser parseados mesmo para evitar erros. Por exemplo, os caracteres abaixo:
> Sinal de maior
< Sinal de menor
& E-comercial
“ Aspas
‘ Apóstrofo
Para isso, recomendo utilizar o PE SPDCCeTx. Segue exemplo de uso para correção.
#include 'protheus.ch'
#include 'parmtype.ch'
/*/{Protheus.doc} SPDCCeTx
//Ponto de Entrada que permite customizar validação referente ao texto digitado da carta de correção
ou alterar ou incrementar informações digitadas.
@author Josuel Silva
@since 01/10/2019
@version 1.0
@return lRet - Retorno lógico, para validar se a informação redigida é valida ou não.
@see (https://tdn.totvs.com/pages/releaseview.action?pageId=51254615 - SPEDNFE.PRX)
/*/
User Function SPDCCeTx(cTexto)
Local lRet := .T.
Default cTexto := ""
IF !Empty(cTexto)
cTexto := StrTran(cTexto,"&Amp;","&")
EndIF
Return lRet