解析格式错误的XML

我正在尝试将一个(可能)格式错误的HTML加载到XMLDocument对象中,但它失败了XMLExceptions …因为有额外的打开/关闭标记,以及格式错误的XML标记,例如而不是

如何使用数据中的所有错误来解析XML? 在解析之前是否可以应用任何XMLvalidation器来纠正这些错误? 或者处理exception解析什么可以解析?

HTML Agility Pack将解析html而不是xhtml,并且非常宽容。 如果您使用过XmlDocument那么对象模型就会很熟悉。

您可能想查看此问题的答案。

基本上介于beautifulsoup的.NET端口和HTML敏捷包之间有一种方法。

您不太可能构建具有此级别格式错误的XmlDocument。 XmlDocument(据我所知)要求xml内容遵循正确的嵌套和闭包语法。

但是,您怀疑可以使用XmlReader解析此问题。 如果遇到某些令人震惊的错误,它仍可能抛出exception,但根据MSDN文档,它至少可以披露错误的位置。

如果您只是处理HTML,那么可以使用HTML Agility Pack ,它可以满足您的需求。

根据具体需要,您可以使用HTML Tidy清理文档,然后使用XMLDocument对象导入它。

你要做的事情非常困难。 HTML无法使用XML解析器进行解析,因为XML是严格的而HTML则不是。 如果该HTML符合XHTML(HTML as XML),则XML解析器将解析HTML而不会出现问题。

如果你真的想要使用XML解析器来制作HTML,你可能想知道是否有任何HTML到XHTML转换器。

换句话说,我还没有遇到处理格式错误的XML的XML解析器…它们不是为了接受像HTML这样的松散标记(也有充分的理由:)

您无法将格式错误的XML加载到XmlDocument

查看CodePlex上的Html Agility Pack