1

问题在标题中,但更具体:我可以从 HTML 中获取以特定文本开头的 URL 吗?可能是,有没有用 JQuery 风格提取的案例?

$( "a[href^='event_handler']" )
4

3 回答 3

1

HTMLAgilityPack 基于使用 XPath 查询,而不是 CSS 选择器(这是您在原始帖子中所拥有的)。

如果您绝对必须使用 CSS 选择器,我过去曾使用过一个名为 Fizzler 的工具:

https://code.google.com/p/fizzler/

它位于 HTMLAgilityPack 之上,因此大部分文档保持不变。

我还要说你的问题有点令人困惑。您的 CSS 选择器基于它href 一个值开头来选择某些东西,但您提到您想通过它来选择某些东西text- 这是不同的。以下是您的原始选择器的直接等价物:

//a[starts-with(@href, 'event_handler')]

但是,要匹配实际的text,而不是href,那么它是:

//a[starts-with(text(), 'event_handler')]
于 2013-09-04T16:33:23.270 回答
1

开箱即用的库不支持 jquery 类型选择器(那些是 CSS 选择器仅供参考),但仅支持XPATHXSLT选择器。当然,也有一些优秀的人花时间添加了对 CSS 选择器支持的扩展,请参阅将 CSS 选择器查询引擎添加到 HTMLAgilityPack 上

添加此内容后,您可以使用您自己提供的字符串选择器来选择链接。

于 2013-09-04T16:16:43.420 回答
0

你也可以使用 linq

doc.DocumentNode.SelectNodes("//li").Where(x => x.FirstChild.Attributes["href"].Value.StartsWith("event_handler")).Select(x => x.FirstChild.Attributes["href"].Value).ToList();
于 2016-02-10T15:26:37.433 回答