首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi、IXMLDOMDocument2、Load由于无效字符而失败

Delphi、IXMLDOMDocument2、Load由于无效字符而失败
EN

Stack Overflow用户
提问于 2010-10-29 00:35:01
回答 2查看 2.2K关注 0票数 3

使用Delphi2009和IXMLDOMDocument2

在将XML加载到IXMLDOMDocument2中时,我收到“在文本内容中发现无效字符”错误。字符是1B (十六进制),出现在CDATA节中。Microsoft的XML查看器(IE)可以很好地加载文件。XML看起来像...

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

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

我尝试在XML和其他编码的开头添加内容,但没有一种方法对我有效。是否可以执行任何操作来加载此文件?

谢谢,迈克尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-29 00:44:19

在ASCII控制字符的XML和along with most of the rest中不允许使用字符U+001B。它不是格式良好的,如果Microsoft的XML查看器没有抱怨,它就不会根据XML的规则解析它。咔哒!

仅在XML1.1中,除了U+0000之外的所有内容都可以像&#x1B;一样作为字符引用包含在文档中。(显然,这在CDATA节中没有什么用处,但是CDATA节也不是很有用。)

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

票数 5
EN

Stack Overflow用户

发布于 2010-10-29 18:30:57

从一些web服务,我需要从一些应用程序调用,我得到了很多污染XML的&#x0;字符。为了解决这个问题,我只需先将XML加载到WideString变量中,然后使用StringReplace()替换非法文本,然后再将XML添加到IXMLDocument接口对象中。

很脏,我知道。但是,如果您仍然需要处理包含非法字符的XML文件,这只是最简单的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4045089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档