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

时间:2011-06-23 10:15:02

标签: .net html parsing html-agility-pack xmlreader

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

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

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

2 个答案:

答案 0 :(得分:5)

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

正如其他人所说,有些问题是HTML不遵循相同的格式良好的XML规则,因此它本身很难解析,但SgmlReader通常做得非常好。

答案 1 :(得分:1)

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

如果您要解析的文档格式正确,为什么不使用XmlReader