Html Agility Pack C #: выражение должно оцениваться как набор узлов - PullRequest
2 голосов
/ 27 августа 2011

Я использую 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}]");

оба сгенерировали исключение: выражение должно вычисляться для узла-задавать.Как я могу исправить свой селектор?

1 Ответ

8 голосов
/ 27 августа 2011

Я ни в коем случае не эксперт XPath, но я подозреваю, что вы хотите:

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

Другими словами "любой элемент с атрибутом data-address"

...