C# 用C解析HTML表并保存在数组中

C# 用C解析HTML表并保存在数组中,c#,string-parsing,C#,String Parsing,我有一个HTML页面,可以包含许多表。一些表可以放在另一个表中。我需要一个C代码来自动读取和解析所有现有的表数据,并将它们保存到数组列表中,不包括表头值 以下是我目前使用HtmlAgilityPack的代码: 该错误意味着您的代码假定某些内容不是空的,而实际上它是空的。所以哪一个对象为null?可能有些表有tbody,因此选择tr作为表的后代会导致null?另外,您的代码不是很健壮,您跳过了硬编码的第一行(假设它是标题行),因此您没有考虑空表。我编辑了我的问题并添加了我的表。所有单元格都有一个值

我有一个HTML页面,可以包含许多表。一些表可以放在另一个表中。我需要一个C代码来自动读取和解析所有现有的表数据,并将它们保存到数组列表中,不包括表头值

以下是我目前使用HtmlAgilityPack的代码:


该错误意味着您的代码假定某些内容不是空的,而实际上它是空的。所以哪一个对象为null?可能有些表有tbody,因此选择tr作为表的后代会导致null?另外,您的代码不是很健壮,您跳过了硬编码的第一行(假设它是标题行),因此您没有考虑空表。我编辑了我的问题并添加了我的表。所有单元格都有一个值。
    string strFilepath = @"filepath\index.html";
    if (System.IO.File.Exists(strFilepath))
    {
        lblValues.Text = "exists";
        //
        HtmlDocument hdoc = new HtmlDocument();
        hdoc.LoadHtml(strFilepath);
        List<List<string>> table = hdoc.DocumentNode.SelectNodes("//table").Descendants("tr").Skip(1)
            .Where(tr => tr.Elements("td").Count() > 1)
            .Select(tr => tr.Elements("td").Select(td => td.InnerText.Trim()).ToList())
            .ToList();
        //
    }
    else
    { lblValues.Text = "error"; }
    <table>
        <thead><tr><th>header1</th><th>header2</th><th>header3</th></tr></thead>
        <tr><td>value01</td><td>value02</td><td>value03</td></tr>
        <tr><td>value11</td><td>value12</td><td>value13</td></tr>
    </table>