XML - 从xml文档中删除非法字符

Sof*_*eek 0 xml encoding entity reference

我有一个XML文档,其中包含特殊字符,如'%',回车符,换行符,&,<,>,',".我试图对整个xml文档进行编码,但在使用xmldocument.load方法时无法加载在C#中.

删除这些特殊字符的最佳方法是什么,而不必硬编码以用相应的实体引用替换非法字符?

Chr*_*ald 5

简短的回答是,具有无效字符的类似XML的文档不是有效的XML文档,需要使其有效.

您有两种可能的修复方法.您已经暗示的第一个是用实体替换无效字符.第二种方法是在CDATA部分中包含任何带有无效字符的内容; 您不必处理这些部分中的内容的任何编码问题.

如果这两个都不是一个选项,你将需要弄清楚如何用一个不关心无效字符的解析器来解析文档,这可能是一个坏主意,如果可能的话应该避免.


Mic*_*Kay 5

不完整的XML文档来自哪里?您的重点应该是纠正文档的来源,以便生成适当的XML.如果人们开始发送几乎是XML但不完整的东西,那么使用XML的所有好处都会丢失 - 您可能也会使用完全专有的格式.