HtmlAgilityPack的替代品?

时间:2010-09-08 02:20:41

标签: c# html-agility-pack

我不喜欢在HtmlAgilityPack中做出的一些设计决定:

  • 使用SelectNodes时,如果找不到任何节点,则会返回null而不是空集,因此如果没有空检查,则不能仅foreach
  • 当尝试选择node.SelectNodes的孩子时,它实际上会从文档根目录进行搜索,除非您使用的descendant::根本不是明显的,也不是预期的行为,IMO。
  • HtmlDocument.Load没有返回根节点,这是99%的时间你想要的,我想

你可能不同意这一点,但那不是重点。我正在寻找不同的东西。表现得更加预期的东西,或使用jQuery语法的东西会更好。建议?

2 个答案:

答案 0 :(得分:4)

启动了名为SharpQuery

的项目

目前支持ID,类,标记和属性选择器。

a
a[href]
a[href^=http://stackoverflow.com]
.class
#id

更新:我不是在维护这个项目,抱歉。 CsQuery最近有更新(截至2013年7月),但我没有使用它的经验。

答案 1 :(得分:2)

如果您只是解析html,另一个选项可能是SgmlReader。 如果你正在修改html,那就不是了。 不要回想起你提出的问题的行为方式,但值得一试。