.NET 4.x Html Agility Pack. Парсинг и запись данных в DataTable - C#
Формулировка задачи:
Не могу спарсить таблицу, например такую:
http://www.vyatsu.ru/files/schedule/1.htm ( код вставить сюда не могу т.к ограничение по символам)
Есть пример, но не могу подогнать под свою таблицу, чтобы полностью получить таблицу.
Помогите, кто знает
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); }
Решение задачи: «.NET 4.x Html Agility Pack. Парсинг и запись данных в DataTable»
textual
Листинг программы
public int GetStringCounter(string value, string findstr) { int index = 0; int counter = 0; while ((index = value.IndexOf(findstr, index)) != -1) { index += findstr.Length; counter++; } return counter; } public string ExtractAndSumString(string value) { StringBuilder builder = new StringBuilder(256); int index1 = 0; int index2 = 0; string findstr1 = ">"; string findstr2 = "<"; while ((index1 = value.IndexOf(findstr1, index1)) != -1) { index1 += findstr1.Length; index2 = value.IndexOf(findstr2, index1); if (index2 != -1) builder.Append(value.Substring(index1, index2 - index1)); else builder.Append(value.Substring(index1)); } return builder.ToString().Trim(); } public List<String> ExtractCellsOfTable(string value) { List<String> list = new List<string>(); int index1 = 0; int index2 = 0; string findstr1 = "<TD"; string findstr2 = "</TD>"; while ((index1 = value.IndexOf(findstr1, index1)) != -1) { index1 += findstr1.Length; index2 = value.IndexOf(findstr2, index1); if (index2 != -1) list.Add(value.Substring(index1, index2 - index1)); } return list; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д