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

时间:2011-11-06 06:23:59

标签: xml encoding reference entity

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

删除这些特殊字符的最佳方法是什么,而无需使用硬编码将非法字符替换为相应的实体引用?

2 个答案:

答案 0 :(得分:5)

简短的回答是,带有无效字符的类似XML的文档不是有效的XML文档,需要有效。

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

如果这些都不是一个选项,你将需要弄清楚如何用一个不关心无效字符的解析器来解析文档,这可能是一个坏主意,如果在一切皆有可能。

答案 1 :(得分:5)

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