将Html表转换为datatable的最佳方法是什么?

apu*_*rva 9 c#-3.0

我有一个html表.我想将其转换为数据表.这样做的最佳方法是什么?谢谢

Jef*_*ado 16

不要自己解析HTML,有解析库可以为你做到这一点.结合HTML Agility Pack和LINQ,您可以做到这一点.

var doc = new HtmlDocument();
doc.Load(url);

var nodes = doc.DocumentNode.SelectNodes("//table/tr");
var table = new DataTable("MyTable");

var headers = nodes[0]
    .Elements("th")
    .Select(th => th.InnerText.Trim());
foreach (var header in headers)
{
    table.Columns.Add(header);
}

var rows = nodes.Skip(1).Select(tr => tr
    .Elements("td")
    .Select(td => td.InnerText.Trim())
    .ToArray());
foreach (var row in rows)
{
    table.Rows.Add(row);
}
Run Code Online (Sandbox Code Playgroud)