我不喜欢在HtmlAgilityPack中做出的一些设计决定:
SelectNodes
时,如果找不到任何节点,则会返回null
而不是空集,因此如果没有空检查,则不能仅foreach
。node.SelectNodes
的孩子时,它实际上会从文档根目录进行搜索,除非您使用的descendant::
根本不是明显的,也不是预期的行为,IMO。HtmlDocument.Load
没有返回根节点,这是99%的时间你想要的,我想你可能不同意这一点,但那不是重点。我正在寻找不同的东西。表现得更加预期的东西,或使用jQuery语法的东西会更好。建议?
答案 0 :(得分:4)
启动了名为SharpQuery
的项目目前支持ID,类,标记和属性选择器。
a
a[href]
a[href^=http://stackoverflow.com]
.class
#id
更新:我不是在维护这个项目,抱歉。 CsQuery最近有更新(截至2013年7月),但我没有使用它的经验。
答案 1 :(得分:2)
如果您只是解析html,另一个选项可能是SgmlReader。 如果你正在修改html,那就不是了。 不要回想起你提出的问题的行为方式,但值得一试。