I don't like some of the design decisions made in HtmlAgilityPack:
SelectNodes, if no nodes are found, it returns
nullrather than an empty set, so you can't just
foreachover it without a null check.
node.SelectNodesit actually searches from the document root unless you use
descendant::which is not obvious nor expected behavior at all, IMO.
HtmlDocument.Loaddoesn't return the root node, which is what you'd want 99% of the time, I think
You 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.