我想知道,如果有,可以在C#中使用一个jQuery般的CSS选择器。
目前,我使用正则表达式解析一些HTML字符串,并认为这将是更漂亮有类似jQuery中的CSS选择器,以配合我所需的元素。
我想知道,如果有,可以在C#中使用一个jQuery般的CSS选择器。
目前,我使用正则表达式解析一些HTML字符串,并认为这将是更漂亮有类似jQuery中的CSS选择器,以配合我所需的元素。
你一定要看到@ jamietre的CsQuery 。 看看他的回答了这个问题!
Fizzler和夏普查询提供类似的功能,但该项目似乎被抛弃。
更新10/18/2012
CsQuery现在是1.3版。 最新版本包含了一个C#端口validator.nu HTML5分析器。 结果CsQuery现在会产生一个使用HTML5规范为无效的标记处理,是完全符合标准的一个DOM。
原来的答案
老问题,但新的答案。 我最近公布的CsQuery,一个jQuery端口写在C#.NET 4,我已经工作了大约一年的1.1版本。 也谈的NuGet为“CsQuery”
当前版本实现了所有CSS2和CSS3选择器,所有的jQuery的扩展,以及所有jQuery的DOM操作方法。 它有广泛的测试覆盖范围包括jQuery和嘶嘶声(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
对象是像thejQuery对象。 上面使用的属性索引器是默认的方法(如$(...)
输出:
string html = dom.Render();
对于XML,你可能使用XPath ...
我不是为你想达到什么完全清楚,但如果你有你试图从数据中提取一个HTML文件,我建议你用加载它分析器 ,然后就变得相当琐碎查询对象拉所需的元素。
我上面链接解析器允许使用XPath查询,这听起来像你在找什么的。
告诉我,如果我误解了。
不太喜欢jQuery的,但是这可能会帮助: http://www.codeplex.com/htmlagilitypack