Поиск закрывающего тега в HTML - C#
Формулировка задачи:
Привет всем.
Я не программист (базовые знания C++/PHP/JS имеются по долгу службы), но постоянно копаю ваш форум, если нужно что-то решить из задач программиста. Огромное спасибо такому комьюнити.
Но вот задачку данную гуглю уже много времени (на форуме было решение, но что-то оно не пашет).
Суть задачи:
Есть рандомная выгрузка исходного кода N сайтов. Оставлены только содержимое тега <body> </body>.
Есть определенные метки (class/id) для начальных тегов div/span/table, собранные на ручном анализе около 1500-2000 сайтов.
Метка является стартом тега, нужно найти закрывающий тег в пару к начальному.
Нужно выгрузить содержимое данного тега.
Пример:
Пытался воевать с регулярками, но всё упирается в то, что регулярка берет только ближайший закрывающий тег, т.е. в нашем случае она берет:
Насколько я пониманию логически, нужно перебирать внутренние теги, т.е. если внутри встречается <div>, то следующий </div> нужно игнорировать и искать дальше. Но реализовать на C# не хватает знаний, к сожалению.
Буду максимально признателен за помощь в решении задачи.
<div class="center_col">содержательная часть - простая</div> <div class="center_col"> содержательная часть состоящая из 2 частей. <div>2 часть в новом dive</div> </div> <div class="center_col"> содержательная часть очень сложная из вложенных тегов.. <div>1 часть в новом dive</div> <div>2 часть в новом dive</div><div>3 часть в новом dive</div> </div>
<div class="center_col">содержательная часть - простая</div>
<div class="center_col"> содержательная часть состоящая из 2 частей. <div>2 часть в новом dive</div>
<div class="center_col"> содержательная часть очень сложная из вложенных тегов.. <div>1 часть в новом dive</div>
Решение задачи: «Поиск закрывающего тега в HTML»
textual
Листинг программы
var source_top = project.Variables["parsed_plain_text"].Value; var res = ""; HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); document.LoadHtml(source_top); HtmlNode divs = document.DocumentNode.SelectSingleNode("//div[@class="ala-article"]"); return(divs.InnerText);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д