【发布时间】:2011-09-21 02:23:36
【问题描述】:
我过去曾使用HtmlAgilityPack 在 .Net 中解析 HTML,但我不喜欢它仅使用 DOM 模型这一事实。
在大型文档和/或具有大量嵌套的文档上,可能会遇到堆栈溢出或内存不足异常。此外,通常基于 DOM 的解析模型比基于流的方法使用更多的内存,这通常是因为想要使用 HTML 的进程可能一次只需要几个元素可用。
有谁知道 .Net 的一个不错的 HTML 解析器,它允许您以类似于 XmlReader 类的方式解析 HTML?即以仅转发流的方式
【问题讨论】:
-
除了您的问题是合法的事实之外,您是否有这样一个 Html 页面的真实示例,它会导致堆栈溢出或 Html Agility Pack 的内存不足异常?我很想看看它长什么样。
-
明天将尝试为您挖掘一个示例。但是以后你会考虑在库中添加一个
XmlReader样式类吗? -
不要浪费太多时间,我只是好奇 :-) 我确实有一个 HtmlReader 库存,但它不是公开的。
-
@Simon 这会出现在库的未来版本中吗?我的 API 必须从各种其他格式中提取数据,目前 HTML 是我仍然坚持使用基于 DOM 的解析的唯一格式,因为 HtmlAgilityPack 不支持流解析 atm
标签: .net html parsing html-agility-pack xmlreader