2011-11-06 63 views
0

我有一个XML文档,其中包含特殊字符,如'%',回车,换行,&,<,>,',“。我尝试编码整个xml文档,但失败在C#中使用XMLDocument.load方法方法时加载。XML - 从xml文档中删除非法字符

什么是去除这些特殊字符,而不必硬编码与相应的实体引用来代替非法字符的最佳方式?

回答

5

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

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

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

+0

我创建了一个循环通过xml并用编码值替换元素/文本值的函数。迄今为止工作。 – SoftwareGeek

5

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