【发布时间】:2011-02-15 03:21:42
【问题描述】:
我有始终包含编码属性的旧代码(我没有编写它),但是将其重新编译到 D2010,TXMLDocument 不再包含编码。因为 XML 数据在标签和数据上都有重音字符,所以 TXMLDocument.LoadFromFile 简单地抛出 EDOMParseErros 说在文件中发现了一个无效字符。相关代码:
Doc := TXMLDocument.Create(nil);
try
Doc.Active := True;
Doc.Encoding := XMLEncoding;
RootNode := Doc.CreateElement('Test', '');
Doc.DocumentElement := RootNode;
<snip>
//Result := Doc.XMl.Text;
Doc.SaveToXML(Result); // Both lines gives the same result
在旧版本的 Delphi 上,会生成以下行:
<?xml version="1.0" encoding="ISO-8859-1"?>
在 D2010 上,生成:
<?xml version="1.0"?>
如果我手动更改线路,所有工作都像过去几年一样正常工作。
更新:XMLEncoding 是一个常量,定义如下
XMLEncoding = 'ISO-8859-1';
【问题讨论】:
标签: xml delphi encoding delphi-2010 txmldocument