GetElementById devuelve nodos incorrectos

c# html-agility-pack

Pregunta

Me encontré con un pequeño problema (no sé si cometí algún error o si es un error) al analizar esta página.

Estoy tratando de obtener toda la a etiqueta disponible en la siguiente tabla:

introduzca la descripción de la imagen aquí

Así que para lograr esto, escribí este código:

`var d = doc.GetElementbyId("odds-data-table");
HtmlNodeCollection listItems = d.SelectNodes("//a");`

en particular d contiene la estructura de tabla que quiero:

introduzca la descripción de la imagen aquí

pero la variable listItems no contiene el enlace de la tabla sino de toda la página html, y esto es bastante extraño. Probé otro caso:

`var d = doc.GetElementbyId("odds-data-table");
HtmlNodeCollection listItems = d.SelectNodes("//a");`

¿qué está mal? Y me gustaría preguntar también qué tipo de complemento o sistema usó para la documentación de HtmlAgilityPack, es realmente impresionante, gracias.

Respuesta aceptada

HtmlNode leer la propiedad Attributes para cada uno de sus HtmlNode desde su HtmlNodeCollection como

HtmlDocument doc = new HtmlDocument();
var d = doc.GetElementbyId("odds-data-table");
HtmlNodeCollection listItems = d.SelectNodes(".//a");

//This list contains all your href values
List<string> hrefs = new List<string>();
foreach (var item in listItems)
{
      var href = item.Attributes["href"].Value;
      hrefs.Add(href);
}



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é