我有一个html表。我想将其转换为数据表。这样做的最佳方法是什么? 感谢
答案 0 :(得分: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);
}
答案 1 :(得分:0)
......几年后......
var nodes = doc.DocumentNode.SelectNodes("//table/tr");
行有拼写错误,需要在' table'之后使用双正斜杠。一切都像魅力一样
var nodes = doc.DocumentNode.SelectNodes("//table//tr");