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