0

私はこれだけのHTMLの山を持っています:

<li id="entry-c7" data-user="ThisIsSomeonesUsername">
  <img width="28" height="28" class="avatar" src="http://very_long_url.png">
  <span class="time">6:07</span>
  <span class="username">ThisIsSomeonesUsername</span>
  <span class="message">This is my message. It is nice, no?</span>
</li>

約10万回(もちろん内容は異なりますが)何度も何度も繰り返しました。これはすべて、これらすべてを保持する要素を取得することにより、HTMLDocument から取得されます。ドキュメントは、Windows フォームの WebBrowser から取得されます。これは次のようになります。

HtmlDocument document = webBrowser1.Document;
HtmlElement element = document.GetElementById(chatElementId);

「chatElementId」は既知の ID であると仮定します。私がやりたいのは、「時間」(この例では 6:07)、「ユーザー名」(ThisIsSomeonesUsername)、および「メッセージ」(これは私のメッセージです... など) でコンテンツを取得することです。メッセージ部分には、追加の html (リンク、画像など) を含め、ほとんどすべてを含めることができますが、すべてそのままにしておきたいと思います。上記の方法で取得した要素の InnerHtml を正規表現で解析するつもりだったのですが、どうやらこれは宇宙の破壊をもたらすようです。では、これを行うにはどうすればよいですか?

編集: 人々は Html Agility Pack を提案し続けていますが、完全な HTML ソースを使用せずに Html Agility Pack でこれを行う簡単な方法はありますか? このクラス以外の残りの html がそれほど優れているかどうかはわかりませんが、とにかく html 全体を渡す必要がありますか?

4

2 に答える 2

1

ニコの回答のリンクを読んでください...同じものを投稿しようとしていました(面白いです)。

そうは言っても、あなたのコメントから、あなたは正規表現に熱心であるようです。だから、それを正規表現してください。
難しいことではないはずです。

http://regexpal.com/にアクセスし、下の部分にデータを貼り付け、満足のいく結果が得られるまで上の部分の正規表現をいじってから、データをループして必要なものを抽出します。コンテンツ。

(私がそれを行うかどうかはわかりませんが、「正しい」答えよりも迅速な修正の方が優れている場合があります)。

于 2013-11-14T00:42:50.107 に答える