Html敏捷包c#:表达式必须计算为一个节点集

本文关键字:点集 节点 一个 计算 表达式 Html | 更新日期: 2023-09-27 18:06:44

我正在使用Html敏捷包来获取网页。我想收集所有的文本,我正在寻找以下形式:

<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}]");

都抛出了一个异常:表达式必须求值为节点集。

Html敏捷包c#:表达式必须计算为一个节点集

无论如何我都不是XPath专家,但我猜您需要:

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

也就是"任何具有data-address属性的元素"