2011-06-07 27 views

cevap

14

Kendiniz HTML'yi ayrıştırmayın, orada sizin için ayrıştıran ayrıştırma kütüphaneleri vardır. HTML Agility Pack ve LINQ ile birleştiğinde, bununla ilgili kısa bir çalışma yapabilirsiniz.

bazı küçük özelleştirmeler ile
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

, bu colspans ve masa şekillendirme (css) özen misiniz bir cazibe –

+1

gibi çalışır? Bu, sadece veri ve eleman işaretlemesi – user327999

+0

@ user327999'a çevirecek gibi görünüyor: hayır, bu sadece bire bir eşleştirmedir. DataTable'ın AFAIK gibi bir sorunu yok. –

İlgili konular