What is the best way of converting a Html table to datatable

前端 未结 2 1024
梦毁少年i
梦毁少年i 2021-02-03 12:34

I have a html table.I want to convert this into a datatable. What is the best way of doing so? Thanks

相关标签:
2条回答
  • 2021-02-03 12:54

    Don't parse the HTML yourself, there are parsing libraries out there that can do that for you. Coupled with the HTML Agility Pack and LINQ, you can make short work of this.

    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);
    }
    
    0 讨论(0)
  • 2021-02-03 13:11

    ...some years later...

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

    line has a typo and needs to be with double forward slash after 'table' and everything works like a charm

    var nodes = doc.DocumentNode.SelectNodes("//table//tr");
    
    0 讨论(0)
提交回复
热议问题