Html Agility Pack: scorre le righe e le colonne

c# html-agility-pack

Domanda

Mi sto solo occupando di analizzare alcuni file html usando il linguaggio C # e HtmlAgilityPack.

Sto cercando di ottenere per ogni riga i valori delle due colonne per inserirli in un database. Ma eseguendo quanto segue:

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

Ho ricevuto un errore mentre eseguivo il loop su tutto il td e non solo quelli inclusi nel tr attuale.

Il mio html ha questo aspetto:

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

Risposta popolare

forse questo

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))));



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché