доброе утро!
я использую c # (framework 3.5sp1) и хочу проанализировать следующий фрагмент HTML через регулярное выражение:
<h1>My caption</h1>
<p>Here will be some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
Мне нужен следующий вывод:
- группа 1: содержание h1
- группа 2: содержание следующего текста h1
- группа 3-n: содержание подразделов + текст
что у меня есть в банкомате:
<hr.*?/>
<h2.*?>(.*?)</h2>
([\W\S]*?)
<hr.*?/>
это даст мне каждый нечетный подзаголовок + контент (например, 1, 3, ...) из-за завершающего <hr/>
. для разбора h1-заголовка у меня есть другой шаблон (<h1.*?>(.*?)</h1>
), который дает мне только заголовок, но не содержимое - я в порядке с этим банкоматом.
У кого-нибудь есть подсказка / решение для меня или любой другой альтернативной логики (например, парсинг html через ридер и назначение его таким образом?)?
редактирование:
как некоторые принесли HTMLAgilityPack , мне было интересно узнать об этом хорошем инструменте. я получил содержимое тега <h1>
.
но ... моя проблема разбирает остальное. это вызвано тем, что теги для содержимого могут различаться - от <p>
до <div>
и <ul>
...
АТМ это кажется более или менее итерации по всему документу и разбор тега для тега ...?
какие-нибудь намеки?