Html Agility Pack C#:表达式必须评估为节点集

c# html-agility-pack web-scraping

我正在使用Html Agility Pack来获取网页。我想收集以下表格的所有文字:

<li><a href="/deal/map/4087664" class="show-location" title="bla bla" data-address="TEXT I AM LOOKING FOR"></a></li>

我试过这段代码:

var web = new HtmlWeb();
var doc = web.Load(url);

var nodes1 = doc.DocumentNode.SelectNodes("//[@data-address]");
var nodes2 = doc.DocumentNode.SelectNodes("//[@data-address={0}]");

两者都引发异常:表达式必须求值为节点集。我怎样才能纠正我的选择器?

一般承认的答案

我不是任何方式的XPath专家,但我怀疑你想要:

// Note the *
var nodes1 = doc.DocumentNode.SelectNodes("//*[@data-address]");

换句话说“具有data-address属性的任何元素”



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因