Разбить страницу html по определённым тегам - C#
Формулировка задачи:
Для создания презентаций я использую фреймворк reveal.js. При открытии такой презентации нужно достать текст между тегами <section> </section>. Нашёл регулярку, но она работает только с одной строкой
При чём могут быть вложенные слайды
Листинг программы
- // Тег для поиска, ищем теги <section></section>
- string tag = "section";
- string pattern = string.Format(@"\<{0}.*?\>(?<tegData>.+?)\<\/{0}\>", tag.Trim());
- // \<{0}.*?\> - открывающий тег
- // \<\/{0}\> - закрывающий тег
- // (?<tegData>.+?) - содержимое тега, записываем в группу tegData
- Regex regex = new Regex(pattern, RegexOptions.ExplicitCapture);
- MatchCollection matches = regex.Matches(PresentationText);
Листинг программы
- <section>
- slides 1
- </section>
- <section>
- <section>
- slides 2_1
- </section>
- <section>
- slides 2_2
- </section>
- </section>
Решение задачи: «Разбить страницу html по определённым тегам»
textual
Листинг программы
- HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument ();
- htmlDoc.LoadHtml("загружаемый документ");
- var root = htmlDoc.DocumentNode;
- HtmlNode firstSect = root.SelectSingleNode("//div[@class='slides']"); // получаем див с классом слайдов
- if (firstSect != null)
- {
- var firstLevelNodes=firstSect.SelectNodes("section");
- foreach (var node in firstLevelNodes)
- {
- var child = node.SelectNodes("section");//получаем дочерние
- if (child.Count > 0)
- {
- //что-то делаем
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д