Delphi,IXMLDOMDocument2,由于字符无效而导致加载失败

Mic*_* S. 3 xml delphi character ixmldomdocument

使用Delphi 2009和IXMLDOMDocument2

在将XML加载到IXMLDOMDocument2时,我收到"在文本内容中找到无效字符"错误.字符为1B(十六进制)并存在于CDATA部分中.Microsoft的XML查看器(IE)加载文件就好了.XML看起来像......

<data><child><![CDATA[-- ]]></child></data>

注意:我尝试粘贴XML,但删除了特殊字符.在CDATA部分,我的XML文件中有" - "后面的1B字符.

我已经尝试添加到XML和其他编码的开头,没有什么对我有用.有没有什么可以加载这个文件?

谢谢,迈克尔

bob*_*nce 5

XML中不允许使用字符U + 001B,以及大多数其余的ASCII控制字符.它的格式不正确,如果微软的XML查看器没有抱怨,它就不会根据XML规则对其进行解析.啧!

在XML 1.1中,除了U + 0000之外的所有内容都可以作为字符引用包含在文档中&#x1B;.(显然,这在CDATA部分没有用,但是CDATA部分无论如何都没用.)

如果需要在XML中包含任意控制字​​符,通常需要使用特定于应用程序的编码方案,例如base64.