在.Net中是否有与HTML相同的XmlReader?

Rob*_*obV 4 .net html parsing xmlreader html-agility-pack

我过去曾使用HtmlAgilityPack来解析.Net中的HTML,但我不喜欢它只使用DOM模型的事实.

在大型文档和/或嵌套级别较高的文档上,可能会遇到堆栈溢出或内存不足异常.通常,基于DOM的解析模型比基于流的方法使用更多的内存,这通常是因为想要消费HTML的过程可能一次只需要几个元素可用.

有没有人知道.Net的一个像样的HTML解析器,它允许你以类似于XmlReader类的方式解析HTML ?即以前向流媒体方式

Mik*_*ney 5

我通常使用SgmlReader:https://github.com/MindTouch/SGMLReader

就像其他人所说的那样,存在一些问题,即HTML不遵循相同的格式良好的XML规则,因此解析本身很困难,但SgmlReader通常做得非常好.


jga*_*fin 1

问题是 HTML 可能格式错误。在解析文档的较大部分之前,您无法知道哪个标记缺少结束标记(或者哪些标记放置的顺序不正确)。

如果您要解析的文档格式良好,为什么不使用XmlReader?