Разбить страницу 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) { //что-то делаем } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д