是否有可能在C#中使用一个jQuery般的CSS / HTML选择?(Is there a jQue

2019-08-19 10:18发布

我想知道,如果有,可以在C#中使用一个jQuery般的CSS选择器。

目前,我使用正则表达式解析一些HTML字符串,并认为这将是更漂亮有类似jQuery中的CSS选择器,以配合我所需的元素。

Answer 1:

你一定要看到@ jamietre的CsQuery 。 看看他的回答了这个问题!

Fizzler和夏普查询提供类似的功能,但该项目似乎被抛弃。



Answer 2:

更新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();


Answer 3:

对于XML,你可能使用XPath ...



Answer 4:

我不是为你想达到什么完全清楚,但如果你有你试图从数据中提取一个HTML文件,我建议你用加载它分析器 ,然后就变得相当琐碎查询对象拉所需的元素。

我上面链接解析器允许使用XPath查询,这听起来像你在找什么的。

告诉我,如果我误解了。



Answer 5:

不太喜欢jQuery的,但是这可能会帮助: http://www.codeplex.com/htmlagilitypack



文章来源: Is there a jQuery-like CSS/HTML selector that can be used in C#?