2012 年 10 月 18 日更新
CsQuery 现在是 1.3 版。最新版本包含validator.nu HTML5 解析器的 C# 端口。因此,CsQuery 现在将生成一个使用 HTML5 规范进行无效标记处理的 DOM,并且完全符合标准。
原答案
老问题,但新答案。我最近发布了 CsQuery 1.1 版,这是一个用于 .NET 4 的 jQuery 端口,用 C# 编写,我已经研究了大约一年。同样在NuGet 上作为“CsQuery”
当前版本实现了所有 CSS2 和 CSS3 选择器、所有 jQuery 扩展以及所有 jQuery DOM 操作方法。它具有广泛的测试覆盖率,包括来自 jQuery 和 sizzle(jQuery CSS 选择引擎)的所有测试。我还包含了一些与 Fizzler 直接比较的性能测试;在大多数情况下,CsQuery 的性能大大优于它。例外实际上是在 Fizzler 更快的地方加载 HTML;我认为这是因为 fizzler 没有建立索引。不过,在您第一次选择之后,您可以恢复该时间。
在 github 站点上有文档,但在基本层面上它是这样工作的:
从 HTML 字符串创建
CQ dom = CQ.Create(htmlString);
从网页同步加载
CQ dom = CQ.CreateFromUrl("http://www.jquery.com");
异步加载(非阻塞)
CQ.CreateFromUrlAsync("http://www.jquery.com", responseSuccess => {
Dom = response.Dom;
}, responseFail => {
..
});
运行选择器和做 jQuery 的东西
var childSpans = dom["div > span"];
childSpans.AddClass("myclass");
CQ 对象类似于 jQuery 对象。上面使用的属性索引器是默认方法(如$(...)。
输出:
string html = dom.Render();