容错XML阅读器

是否有人为.NET制作/制造/销售容错的XML阅读器?

是的,我知道,XML并不是为了在其中存在错误而应该被拒绝,如果它不是有效的……等等。 但遗憾的是现实世界并不完美,开发人员确实犯了错误,我仍然希望能够读取他们的提要,即使我在这里或那里错过了奇数元素,因为它没有正确编码或者在其中有其他错误。 所以请,没有答案“修复源”或“拒绝它”。

那么,是否有人能够恢复和处理XML文件中的常见错误?

环顾HTML Parser,因为html几乎是xml

正是因为现实世界并不完美,所以XML被如此广泛地使用。 容错XML解析器的function规范是什么? 这是一个开放式的问题。 解析格式良好的XML的所有变体而不试图猜测所有可能的错误是很困难的。

[…等待downvote。]

首先通过Beautiful Soup运行XML。 这将清除您的XML错误,以便正确解析

对于RSS提要的特定情况和单个损坏项目条目的特定情况,您可以使用XmlTextReader分别手动读取每个项目,处理无效项目的XmlException。 当发生exception时,您将需要使用新的Reader实例,因为原始的Reader已被清除。 您仍然必须使用有效的标记来标识每个项目,但您将能够从每个项目中的损坏数据中恢复。

是的,我知道这是一个老问题,但最近我一直在寻找宽容的xml解析器,并找到了以下内容: XmlParser 。

一个Roslyn启发的完全保真的XML解析器,没有依赖关系和简单的Visual Studio XML语言服务。

解析器生成完全保真的语法树,这意味着源文本的每个字符都在树中表示。 树覆盖整个源文本。 解析器没有依赖关系,可以轻松实现可移植性。

您可以在项目中添加Nugets。 我试过这个解析器,它可以读取任何XML文件。