Разбить страницу html по определённым тегам - C#

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

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

Для создания презентаций я использую фреймворк reveal.js. При открытии такой презентации нужно достать текст между тегами <section> </section>. Нашёл регулярку, но она работает только с одной строкой
Листинг программы
  1. // Тег для поиска, ищем теги <section></section>
  2. string tag = "section";
  3. string pattern = string.Format(@"\<{0}.*?\>(?<tegData>.+?)\<\/{0}\>", tag.Trim());
  4. // \<{0}.*?\> - открывающий тег
  5. // \<\/{0}\> - закрывающий тег
  6. // (?<tegData>.+?) - содержимое тега, записываем в группу tegData
  7. Regex regex = new Regex(pattern, RegexOptions.ExplicitCapture);
  8. MatchCollection matches = regex.Matches(PresentationText);
При чём могут быть вложенные слайды
Листинг программы
  1. <section>
  2. slides 1
  3. </section>
  4. <section>
  5. <section>
  6. slides 2_1
  7. </section>
  8. <section>
  9. slides 2_2
  10. </section>
  11. </section>

Решение задачи: «Разбить страницу html по определённым тегам»

textual
Листинг программы
  1.  HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument ();
  2.             htmlDoc.LoadHtml("загружаемый документ");
  3.             var root = htmlDoc.DocumentNode;
  4.             HtmlNode firstSect = root.SelectSingleNode("//div[@class='slides']"); // получаем див с классом слайдов
  5.             if (firstSect != null)
  6.             {
  7.                 var firstLevelNodes=firstSect.SelectNodes("section");
  8.                 foreach (var node in firstLevelNodes)
  9.                 {
  10.                     var child = node.SelectNodes("section");//получаем дочерние
  11.                     if (child.Count > 0)
  12.                     {
  13.                         //что-то делаем
  14.                     }
  15.                 }
  16.             }

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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