我们有各种由当前发行版中的应用程序生成的 XML 文件。其中一些文件已被证明包含无效字符,从而使它们成为无效的 XML,除非所有验证都关闭,否则在大多数情况下都不会加载,然后,仅在XmlDocument
某些情况下,不会加载XDocument
.
由于这个应用程序已经存在,我们必须处理它产生的文件。现在,在尝试加载文档之前,我可以继续添加一个Sanitizer
知道要查找什么以及如何修复它的类型,但我希望有人可能已经付出了努力来产生一些可能已经在高效的方式(如SanitizedXmlReader
上课)。
这个问题涉及相同的主题,但我没有在那里找到令人满意的答案。我们想要的只是删除 XML 文件中任何位置的无效内容(而不是仅在 CDATA 中有效或在 QName 中未使用时有效的数据)。
那么,是否存在这样一种东西,可以将“几乎”的 XML 文件变成“至少没有无效字符”的 XML 文件?如果没有,我们自己的滚动是下一个选择。在这种情况下,与其花时间解释 XML 规范以确定哪些字符在所有情况下都是非法的,不如在某个地方有一个明确的列表?