2011-06-07 10 views
8

में कनवर्ट करने का सबसे अच्छा तरीका क्या है मेरे पास एक HTML तालिका है। मैं इसे एक डाटाटेबल में परिवर्तित करना चाहता हूं। ऐसा करने का सबसे अच्छा तरीका क्या है? धन्यवादएचटीएमएल तालिका को डेटाटेबल

उत्तर

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

, एक आकर्षण –

+1

इस colspans और टेबल स्टाइल (सीएसएस) का ख्याल रखना होगा की तरह काम करता है? ऐसा लगता है कि यह डेटा और तत्व मार्कअप – user327999

+0

@ user327999 का अनुवाद करेगा: नहीं, यह सिर्फ एक-से-एक मैपिंग है। डेटाटेबल्स में वैसे भी ऐसी कोई बात नहीं है जो AFAIK है। –

संबंधित मुद्दे