【发布时间】:2013-11-04 17:37:43
【问题描述】:
我将我的 Delphi 7 代码迁移到 Delphi XE4。我在 Delphi XE4 中的 LoadFromSram 方法中遇到错误,但在 Delphi 7 中同样可以正常工作。
错误:
First chance exception at $7559C41F. Exception class EDOMParseError with message
'XML document must have a top level element.
Line: 0
'.
Process abc.exe (10516)
var
myStream : TStream;
....
....
LoadFromStream(myStream);
我在 uses 子句中使用 XMLDoc、XMLIntf、XMLDOM。
【问题讨论】:
-
你把
Position的流设为0了吗? -
@TLama - 在哪里指定位置?
-
使用例如
myStream.Position := 0;,但这不一定是你的问题。正如克里斯指出的那样,该流可以是空的。您可以检查是否评估myStream.Size属性。如果它是 0,那么你有一个空流,因此是一个无效的 XML。 -
@TLama - 位置已设置为 0。在 Delphi 7 中加载相同的 XML 时,xml 大小不为零,但从 Delphi XE4 代码中加载相同的 xml,xml 大小变为零。可能是什么原因?
-
对不起,我完全不知道。我不知道你如何填充那个流。我怀疑这与 ANSI/Unicode 迁移有关,但这只是一个疯狂的猜测。
标签: delphi delphi-7 delphi-xe4