Html Agility Pack C #: la expresión debe evaluar a un conjunto de nodos

c# html-agility-pack web-scraping

Pregunta

Estoy usando Html Agility Pack para obtener una página web. Quiero recoger todos los TEXTOS QUE ESTOY BUSCANDO de la siguiente forma:

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

Probé este código:

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

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

ambos lanzaron una excepción: la expresión debe evaluar a un conjunto de nodos. ¿Cómo puedo corregir mi selector?

Respuesta aceptada

No soy un experto en XPath de ninguna manera, pero sospecho que quieres:

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

En otras palabras, "cualquier elemento con un atributo de data-address "



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué