XPath HTML查找节点
我正在使用HtmlAgilityPack尝试查找具有href属性的HTML“A”节点,该属性包含特定字符串,在我的示例中为字符串“/groups/”:XPath HTML查找节点,xpath,html-agility-pack,Xpath,Html Agility Pack,我正在使用HtmlAgilityPack尝试查找具有href属性的HTML“A”节点,该属性包含特定字符串,在我的示例中为字符串“/groups/”: HtmlNodeCollection groups = source.DocumentNode.SelectNodes("//a[contains(@href, '/groups/')]"); 虽然源代码包含大约20个这样的节点,但我上面的代码没有返回任何节点,这让我相信可能我做得不对 我所做的是否正确?如果不正确,我如何选择具有特定属性且其值
HtmlNodeCollection groups = source.DocumentNode.SelectNodes("//a[contains(@href, '/groups/')]");
虽然源代码包含大约20个这样的节点,但我上面的代码没有返回任何节点,这让我相信可能我做得不对
我所做的是否正确?如果不正确,我如何选择具有特定属性且其值包含特定字符串的节点?您的表达式对我来说似乎是正确的 您不发布源文档(或至少部分源文档)。所以,我猜 问题是,xpath对于不区分大小写的比较来说并不酷。如果对此有
:
//a[包含(翻译(@href,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),'/groups/')]
作为另一个选项,您可以将LINQ与StringComparison.OrdinalIgnoreCase一起使用:
source.DocumentNode.Descendants("a")
.Where(a => a.GetAttributeValue("href", string.Empty)
.IndexOf("/groups/", StringComparison.OrdinalIgnoreCase) != -1
);
请添加目标xml