容错XML阅读器

时间:2010-11-02 19:34:21

标签: c# .net xml rss

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

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

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

5 个答案:

答案 0 :(得分:13)

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

[...等待downvote。]

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

  

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

     

解析器生成一个完全保真的语法树,意味着每一个   源文本的字符在树中表示。那个树   涵盖整个源文本。解析器没有依赖关系,可以   容易携带。

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