Html Agility Pack - recorre filas y columnas

c# html-agility-pack

Pregunta

Me estoy involucrando en el análisis de algunos archivos html usando el lenguaje C # y HtmlAgilityPack.

Estoy tratando de obtener para cada fila los valores de las dos columnas para insertarlos en una base de datos. Pero ejecutando lo siguiente:

foreach (HtmlNode row in htmlDoc.DocumentNode.SelectNodes("//tr"))
    {
    foreach (HtmlNode cell in row.SelectNodes("//td"))
    {
    Console.WriteLine(cell.InnerText);
    }
    }

Recibí un error al recorrer todo el td y no solo los incluidos en el tr actual.

Mi html se ve así:

foreach (HtmlNode row in htmlDoc.DocumentNode.SelectNodes("//tr"))
    {
    foreach (HtmlNode cell in row.SelectNodes("//td"))
    {
    Console.WriteLine(cell.InnerText);
    }
    }

Respuesta popular

tal vez esto

var rows = doc.DocumentNode
              .SelectNodes("//tr")
              .Select((z, i) => new
                  {
                    RowNumber = i,
                    Cells = z.ChildNodes.Where(c => c.NodeType == HtmlNodeType.Element) })
              .ToList();

rows.ForEach(row => Console.WriteLine("{0}: {1}", row.RowNumber, string.Join(", ", row.Cells.Select(z => z.InnerText))));



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é