不知何故,有时下面的代码在加载有效的Windows-1252 XML时会产生错误.
它在使用MSXML6的Windows XP Professional x86 SP3上失败.
它在使用MSXML6的Windows 7 Ultimate x64 SP1上取得了成功.
注意:下面的代码是用Delphi编写的,但是在其他环境中,等效代码也会失败.
procedure TXMLEOSErrorTestCase.Test;
var
XmlDocument: IXMLDOMDocument3;
XmlFileName: string;
begin
XmlDocument := CoFreeThreadedDOMDocument60.Create();
XmlFileName := TPath.Combine(TPath.GetDirectoryName(ParamStr(0)), '1-Normal.xml');
if not XmlDocument.load(XmlFileName) then
Parse(XmlDocument.parseError);
end;
Run Code Online (Sandbox Code Playgroud)
在XmlDocument.load方法期间发生此错误:
reason: System error: -2146697210.
errorCode: -2146697210
url: C:\temp\1-Normal.xml
Run Code Online (Sandbox Code Playgroud)
我将XML修剪为下面的XML.
这是XML文件的十六进制转储:
000000: 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 20 3D 20 <?xml version =
000010: 22 31 2E 30 22 20 65 6E 63 6F 64 69 6E 67 …Run Code Online (Sandbox Code Playgroud)