Estou gerando o xml com os eventos do esocial no meu sistema, depois importo no acbresocial para que ele faça a assinatura e envie. Eu gero o xml da forma que ele deve ir para a fazenda, como na estrutura abaixo:
<eventos><evento id="1"><esocial>...</esocial><evento id="2"><esocial>...</esocial>....</eventos>
Quando tento realizar o load deste xml para o acbresocial ele dá erro: falha ao interpretar xml xmlparsedoc.
Analisando o código do acbresocialeventos.pas, ele parece não esperar a estrutura acima, ele espera que venha uma lista de <esocial></esocial>, sem as tags de<evventos> e <evento>. Eu fiz um ajuste no código para que ele consiga realizar a leitura do xml com as tags <eventos> e <evento> basta substituir a função abaixo no código acbresocialeventos.pas
function TEventos.LoadFromString(AXMLString: String): Boolean;
var
// AXML: AnsiString;
AXML: String;
P: integer;
function PoseSocial: integer;
begin
Result := pos('</eSocial>', AXMLString);
end;
begin
Result := False;
AXMLString := copy(AXMLString, pos('<eSocial', AXMLString), length(AXMLString));
P := PoseSocial;
while P > 0 do
begin
AXML := copy(AXMLString, 1, P + 9);
AXMLString := Trim(copy(AXMLString, P + 10, length(AXMLString)));
AXMLString := copy(AXMLString, pos('<eSocial', AXMLString), length(AXMLString));
Result := Self.Iniciais.LoadFromString(AXML);
Result := Self.Tabelas.LoadFromString(AXML) or Result;
Result := Self.NaoPeriodicos.LoadFromString(AXML) or Result;
Result := Self.Periodicos.LoadFromString(AXML) or Result;
SaveToFiles;
P := PoseSocial;
end;
end;
Se os moderadores puderem fazer o ajuste seria legal, até entendo que não é um problema comum, mas outros usuários podem sofre com este problema.