2011-06-07 105 views

回答

14

不要自己解析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); 
} 
+0

有一些小的定製,作品像一個魅力 – 2013-06-27 18:10:45

+1

這將照顧colspans和表樣式(css)?這看起來像只會翻譯數據和元素標記 – user327999 2015-01-20 20:27:31

+0

@ user327999:不,這只是一對一的映射。無論如何,DataTables並沒有這樣的事情。 – 2015-01-21 08:34:58

相關問題