.NET 4.x Html Agility Pack. Парсинг и запись данных в DataTable - C#

Узнай цену своей работы

Формулировка задачи:

Не могу спарсить таблицу, например такую: http://www.vyatsu.ru/files/schedule/1.htm ( код вставить сюда не могу т.к ограничение по символам) Есть пример, но не могу подогнать под свою таблицу, чтобы полностью получить таблицу.
Листинг программы
  1. var doc = new HtmlDocument();
  2. doc.Load(url);
  3. var nodes = doc.DocumentNode.SelectNodes("//table/tr");
  4. var table = new DataTable("MyTable");
  5. var headers = nodes[0]
  6. .Elements("th")
  7. .Select(th => th.InnerText.Trim());
  8. foreach (var header in headers)
  9. {
  10. table.Columns.Add(header);
  11. }
  12. var rows = nodes.Skip(1).Select(tr => tr
  13. .Elements("td")
  14. .Select(td => td.InnerText.Trim())
  15. .ToArray());
  16. foreach (var row in rows)
  17. {
  18. table.Rows.Add(row);
  19. }
Помогите, кто знает

Решение задачи: «.NET 4.x Html Agility Pack. Парсинг и запись данных в DataTable»

textual
Листинг программы
  1.     public  int GetStringCounter(string value, string findstr)
  2.     {
  3.         int index = 0;
  4.         int counter = 0;
  5.         while ((index = value.IndexOf(findstr, index)) != -1)
  6.         {
  7.             index += findstr.Length;
  8.             counter++;
  9.         }
  10.         return counter;
  11.     }
  12.  
  13.  
  14.     public  string ExtractAndSumString(string value)
  15.     {
  16.  
  17.         StringBuilder builder = new StringBuilder(256);
  18.         int index1 = 0;
  19.         int index2 = 0;
  20.         string findstr1 = ">";
  21.         string findstr2 = "<";
  22.         while ((index1 = value.IndexOf(findstr1, index1)) != -1)
  23.         {
  24.             index1 += findstr1.Length;
  25.             index2 = value.IndexOf(findstr2, index1);
  26.        
  27.             if (index2 != -1)
  28.                 builder.Append(value.Substring(index1, index2 - index1));
  29.            else
  30.                 builder.Append(value.Substring(index1));
  31.         }
  32.         return builder.ToString().Trim();
  33.     }
  34.  
  35.  
  36.     public  List<String> ExtractCellsOfTable(string value)
  37.     {
  38.  
  39.         List<String> list = new List<string>();
  40.         int index1 = 0;
  41.         int index2 = 0;
  42.         string findstr1 =  "<TD";
  43.         string findstr2 = "</TD>";
  44.         while ((index1 = value.IndexOf(findstr1, index1)) != -1)
  45.         {
  46.             index1 += findstr1.Length;
  47.             index2 = value.IndexOf(findstr2, index1);
  48.             if (index2 != -1)
  49.                list.Add(value.Substring(index1, index2 - index1));
  50.      
  51.         }
  52.         return list;
  53.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы