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

XML-从XML文档中删除非法字符,xml,encoding,reference,entity,Xml,Encoding,Reference,Entity,我有一个XML文档,它包含特殊字符,如“%”、回车、换行符、&、“,”。我尝试对整个XML文档进行编码,但在C#中使用xmldocument.load方法时加载失败 删除这些特殊字符而不必硬编码以相应的实体引用替换非法字符的最佳方法是什么?简单的回答是,具有无效字符的类似XML的文档不是有效的XML文档,需要使其有效 您有两种可能的修复方法。第一种方法是用实体替换无效字符。第二种方法是在CDATA节中用无效字符包装任何内容;您不必处理这些节中内容的任何编码问题 如果这两种方法都不适用,那么您需要

我有一个XML文档,它包含特殊字符,如“%”、回车、换行符、&、“,”。我尝试对整个XML文档进行编码,但在C#中使用xmldocument.load方法时加载失败


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

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

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


如果这两种方法都不适用,那么您需要弄清楚如何使用不关心无效字符的解析器来解析文档,这可能是个坏主意,如果可能的话,应该尽量避免使用。

不完全XML文档来自何处?您的重点应该是更正文档的源代码,以便它可以生成正确的XML。如果人们开始发送几乎是XML但不完全是XML的内容,那么使用XML的所有好处都将失去——你最好使用完全专有的格式。

我创建了一个函数,该函数循环遍历XML,并用编码值替换元素/文本值。目前为止,该函数仍然有效。