HTMLを読む際のHtmlAgilityPackの問題

.net c# html html-agility-pack parsing

質問

私はC#でウェブサイトを読んでいて、文字列としてコンテンツを取得しています....よく整形されたhtml構造を持たないサイトがいくつかあります。

私はその場合に問題を与えるHtmlAgilityPackを使用しています。

あなたは、文字列全体を読むことができ、有用な情報を得ることができるように、私は何を使うべきかを人々に示唆できますか?

ここに私のコードです

 htmlDoc.LoadHtml(s);
  if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)

なぜこのIF条件が私の場合に当てはまるのか

受け入れられた回答

あなたは何を得ているのですか?例外を投げているのですか、エラーを見たいだけですか?あなたの実際の質問が何であるかを伝えるのは難しいです。

HTMLのマークアップエラーは、 HtmlDoc.ParseErrorsプロパティを使用してHtmlDoc.ParseErrors 、それらを繰り返し処理できます。これにより、行番号、コード、エラーの種類がわかります。

このプロパティの詳細はこちらをご覧くださいhttps://stackoverflow.com/a/5367455/235644

編集

さて、私の返事からあなたの質問を更新しました。上で説明した.ParseErrorsループすることにより、IF文中で真を返す特定のエラーを見ることができます。

2回目の編集

次のようにエラーをループすることができます:

 foreach (var error in htmlDoc.ParseErrors)
 {
      Debug.WriteLine(error.Line);
      Debug.WriteLine(error.Reason);
 }

人気のある回答

htmlが外部であり、修正できない場合は、まずクリーンアッププリプロセッサで実行し、 HtmlAgilityPack解析しHtmlAgilityPack

これは、 HtmlAgilityPackがそれを見る前に、できるだけ多くの問題を自動的に修正しようとします。最も一般的なHTMLクリーンアップツールはTidyです。 .NETバージョンはこちら:

http://sourceforge.net/projects/tidynet/



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow