Как получить отсортированные значения из таблицы HTML в C #? - PullRequest
0 голосов
/ 08 февраля 2019

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

Но эти решения java / javascript для меня не подойдут.Также упомянутые Программы больше не работают, я думаю, что они выпустили новую версию Программного обеспечения.Вот пример, который я пытаюсь проанализировать: https://www.ostfalia.de/cms/de/b/studium/stundenplaene/download/ss19_b_stdgrp_ai_6.html

Мне нужны проанализированные данные в правильной последовательности, потому что я хочу создать файл iCalendar с ним или передать / отправить данные в самописном расписанииПриложение

Я использую HTML Agility Pack, и я уже преуспел в разборе того, что мне нужно, но я не могу получить его в правильном порядке полного разделения, потому что HAP отображается по строкам, как любой другой парсер.Я так отчаялся, что я был близок к тому, чтобы просто подсчитать emtpy trs, чтобы оценить, когда начинается новая строка, но это не работает, потому что программа иногда имеет иногда менее пустые строки.У кого-нибудь из вас есть идея?

Это мой код для получения необходимой мне информации:

        WebClient client = new WebClient();
        string html = client.DownloadString("https://www.ostfalia.de/cms/de/b/studium/stundenplaene/download/ss19_b_stdgrp_ai_6.html");

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(html);

        var erg = doc.DocumentNode.SelectNodes("//td[@class='v']");

        for (int i = 0; i < erg.Count; i++)
        {
            txt_check.Text = (erg[i].InnerText);
            list_check.Items.Add(erg[i].InnerText);
        }

«класс v» - это событие, а «класс t» - это время вв этом примере это просто класс v

Я получаю:

Вывод класса = 'v' выглядит следующим образом:

10: 30 - 12:00 UhrAI 6.1 Komponentenbasierte SoftwareentwicklungB.RogallaB 109

13: 00 - 14:30 UhrAI WPF-12 CCNA 2 Cisco Routing & SwitchingChr.HollmannA 201

13: 00 - 14:30 UhrAI WPF Inst.и.Betrieb Einer Datenb.а.Б. Оракул.ГерингА

14: 45 - 16:15 UhrAI WPF Mathematik III für InformatikerT.WaldeerB 27 114

14: 45 - 16:15 UhrAI WPF-18 AutomatisierungstechnikF.DziembowskiA 107

Выход класса = 't' выглядит так:

"Di, 05.03.2019"

"Mi, 06.03.2019"

"Do, 07.03.2019"

"Fr, 08.03.2019"

"Sa, 09.03.2019"

Надеюсь, у кого-то есть идея, как я могу Сортироватьи сопоставьте информацию в словаре или списке, чтобы получить ее в ICS.

Выходные данные должны быть такими:

"MI, 06.03.2019, 8:45 - 10:15, AI6.1 Komponentenbasierte Softwareentwicklung B. Rogalla B109, 10:30 - 12:00 AI.или что-то.

Pastbin для всего HTML: https://pastebin.com/hHbJTujN

Некоторые картинки вывода: https://drive.google.com/open?id=16Y_hISdVEvzlrS6LCmBMcwAarGhz__t0

...