Boa noite.
Estava recebendo o erro abaixo:
Erro: "arquivo enviado fora da estrutura do arquivo xml de entrada".
Perdi algumas horas procurando pelo em ovo... o problema éram caracteres especiais nos dados do tomador, ex:
"Fulano & Sicrano Ltda."
O "E Comecial - &" causava o erro.
Caso alguém também passe por isto, segue uma função para remover acentos e caracteres especiais:
//Exemplo de uso: txt:=TrocaCarEspec('', True);
//Devolve: FULANO SICRANO LTDA
function TrocaCarEspec(aTexto : string; aLimExt : boolean) : string;
const
//Lista de caracteres especiais
xCarEsp: array[1..38] of String = ('á', 'à', 'ã', 'â', 'ä','Á', 'À', 'Ã', 'Â', 'Ä',
'é', 'è','É', 'È','í', 'ì','Í', 'Ì',
'ó', 'ò', 'ö','õ', 'ô','Ó', 'Ò', 'Ö', 'Õ', 'Ô',
'ú', 'ù', 'ü','Ú','Ù', 'Ü','ç','Ç','ñ','Ñ');
//Lista de caracteres para troca
xCarTro: array[1..38] of String = ('a', 'a', 'a', 'a', 'a','A', 'A', 'A', 'A', 'A',
'e', 'e','E', 'E','i', 'i','I', 'I',
'o', 'o', 'o','o', 'o','O', 'O', 'O', 'O', 'O',
'u', 'u', 'u','u','u', 'u','c','C','n', 'N');
//Lista de Caracteres Extras
xCarExt: array[1..48] of string = ('<','>','!','@','#','$','%','¨','&','*',
'(',')','_','+','=','{','}','[',']','?',
';',':',',','|','*','"','~','^','´','`',
'¨','æ','Æ','ø','£','Ø','ƒ','ª','º','¿',
'®','½','¼','ß','µ','þ','ý','Ý');
var
xTexto : string;
i : Integer;
begin
xTexto := aTexto;
for i:=1 to 38 do
xTexto := StringReplace(xTexto, xCarEsp[i], xCarTro[i], [rfreplaceall]);
//De acordo com o parâmetro aLimExt, elimina caracteres extras.
if (aLimExt) then
for i:=1 to 48 do
xTexto := StringReplace(xTexto, xCarExt[i], '', [rfreplaceall]);
Result := xTexto;
end;
Ou será que estou "comento barriga" e tem algo pronto no ACBr pra isto ?
[]´s
Edson.