I don't like some of the design decisions made in HtmlAgilityPack:
SelectNodes
, if no nodes are found, it returns null
rather than an empty set, so you can't just foreach
over it without a null check.node.SelectNodes
it actually searches from the document root unless you use descendant::
which is not obvious nor expected behavior at all, IMO.HtmlDocument.Load
doesn't return the root node, which is what you'd want 99% of the time, I thinkYou might disagree with that of course, but that's not the point. I'm looking for something different. Something that behaves a little more expected, or something that uses jQuery syntax would be even better. Suggestions?
Started project called SharpQuery
Currently supports ID, class, tag, and attribute selectors.
a
a[href]
a[href^=http://stackoverflow.com]
.class
#id
Update: I'm not maintaining this project, sorry. CsQuery has recent updates (as of July 2013), but I don't have any experience using it.