このHTMLの部分を解析するには?

c# html html-agility-pack

質問

おはようございます!私はC#(フレームワーク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-following textの内容
  • グループ3-n:サブキャプション+テキストの内容

私は何atm持っている:

<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>

これは、後に続く<hr/>ために、私にすべての奇数サブカケーション+コンテンツ(例えば、1,3、...)を与えます。 h1-captionを解析するために、別のパターン( <h1.*?>(.*?)</h1> )を持っています。

誰か私のためのヒント/ソリューションや任意の代替論理(例えば、読者を介してHTMLを解析し、このように割り当てるのですか?)

編集:
HTMLAgilityPackを持ってきた人もいますが 、私はこの素晴らしいツールに興味がありました。私は<h1>タグの内容を取得しました。
しかし、...微妙な問題は残りの部分を解析しています。これは、コンテンツのタグが<p>から<div>および<ul> ... atmまで変化する可能性があります。これは、ドキュメント全体にわたって多かれ少なかれ反復されているようです。何かヒント?

受け入れられた回答

このためには本当にHTMLパーサが必要です


人気のある回答

正規表現を使ってHTMLを解析しないでください。 HTMLアジリティパックの使用を検討してください。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ