2013-08-06 3 views
4

Я хотел импортировать некоторые данные из таблицы HTML (вот ссылка http://road2paris.com/wp-content/themes/roadtoparis/api/generated_table_august.html) и отобразить первые 16 человек в DataGridView в моем приложении Form. Из того, что я прочитал, лучший способ сделать это - использовать пакет гибкости HTML, поэтому я загрузил его и включил в свой проект. Я понимаю, что первое, что нужно сделать, - загрузить содержимое html-файла. Это код, который я использовал для этого:Импорт данных из таблицы HTML в DataTable в C#

 string htmlCode = ""; 
     using (WebClient client = new WebClient()) 
     { 
      client.Headers.Add(HttpRequestHeader.UserAgent, "AvoidError"); 
      htmlCode = client.DownloadString("http://road2paris.com/wp-content/themes/roadtoparis/api/generated_table_august.html"); 
     } 
     HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 

     doc.LoadHtml(htmlCode); 

А потом я застрял. Я не знаю, как заполнить мои данные данными из таблицы html. Я пробовал много различных решений, но ничего не работает должным образом. Я был бы рад, если бы кто-нибудь мог мне помочь в этом.

+0

Попробуйте выполнить повторение строк по столбцам. Заполните ячейку таблицы ячейкой. Изучите метод 'HtmlDocument.GetElementsByTagName (...)' или 'ById (...)' и т. Д. – SimpleVar

+1

возможный дубликат [Получение данных из таблицы HTML в datatable] (http://stackoverflow.com/questions/10513529/get-data-from-html-table-in-a-datatable) –

+0

Grant Winney yes Я использовал код из этой темы – user2658455

ответ

9
HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(htmlCode); 
var headers = doc.DocumentNode.SelectNodes("//tr/th"); 
DataTable table = new DataTable(); 
foreach (HtmlNode header in headers) 
    table.Columns.Add(header.InnerText); // create columns from th 
// select rows with td elements 
foreach (var row in doc.DocumentNode.SelectNodes("//tr[td]")) 
    table.Rows.Add(row.SelectNodes("td").Select(td => td.InnerText).ToArray()); 

Для использования этого кода вам понадобится библиотека HTML Agility Pack.

Смежные вопросы