Разбить страницу 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)
                    {
                        //что-то делаем
                    }
                } 
            }

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


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

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

12   голосов , оценка 4.083 из 5
Похожие ответы