我想用xpath选择不同类的div节点。我该怎么办? 我写了这段代码,但它返回错误。
HtmlWeb w = new HtmlWeb();
string SearchResults = "http://www.ask.com/web?q=" + query.querytxt;
var hd = w.Load(SearchResults);
var titles = hd.DocumentNode.SelectNodes("//div[contains(@class='web-result ur tsrc')] && //div[contains(@class='web-result ur tsrc_Wiki-SA '] && //div[contains(@class='web-result ur tsrc_tube youtube-result ']");
我需要这些div
//div[contains(@class='web-result ur tsrc')]
//div[contains(@class='web-result ur tsrc_Wiki-SA ')]
//div[contains(@class='web-result ur tsrc_tube youtube-result ']
这是错误:
'// div [contains(@ class ='web-result ur tsrc')]中的函数'contains' &安培;&安培; // div [contains(@ class ='web-result ur tsrc_Wiki-SA']&& // div [contains(@ class ='web-result ur tsrc_tube youtube-result']'has 参数数量无效。
答案 0 :(得分:4)
xpath
contains()
功能与,
一起使用来比较值而不是=
。因此,请尝试使用正确的xpath
: -
//div[contains(@class, 'web-result ur tsrc')]
//div[contains(@class, 'web-result ur tsrc_Wiki-SA ')]
//div[contains(@class, 'web-result ur tsrc_tube youtube-result ')]
希望它有帮助...:)
答案 1 :(得分:0)
要选择具有不同类名的所有div(节点),请直接搜索类名。
您可以按照以下步骤进行操作:
hd.DocumentNode.SelectNodes("@class='web-result ur tsrc' or @class='web-result ur tsrc_Wiki-SA' or @class='web-result ur tsrc_tube youtube-result ']");