2

私は C# で Web サイトを読んでいて、コンテンツを文字列として取得しています。適切な形式の html 構造を持たないサイトがいくつかあります。

その場合に問題が発生する HtmlAgilityPack を使用しています。

文字列全体を読み取って有用な情報を取得できるように、何を使用すればよいか教えていただけますか?

これが私のコードです

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

この IF 条件が私の場合に当てはまる理由

4

3 に答える 3

3

あなたが得ているエラーは何ですか?例外をスローしていますか、それとも単にエラーを表示したいだけですか? あなたの実際の質問が何であるかを伝えるのは難しいです。

プロパティを使用して HTML のマークアップ エラーを確認し、HtmlDoc.ParseErrorsそれらを反復処理できます。これにより、行番号、コード、およびエラーの種類が表示されます。

このプロパティの詳細については、 https://stackoverflow.com/a/5367455/235644を参照してください。

編集

わかりましたので、私の返信後に質問を更新しました。.ParseErrors上記をループすることで、IF ステートメントで true を返す特定のエラーを確認できます。

2 回目の編集

次のようにエラーをループできます。

 foreach (var error in htmlDoc.ParseErrors)
 {
      Debug.WriteLine(error.Line);
      Debug.WriteLine(error.Reason);
 }
于 2013-06-18T13:06:24.337 に答える
0

HTML のバグを修正する必要があり、それが有効になったら続行できます。ここに同じ問題があります: AgilityPack の無効な HTML

于 2013-06-18T13:20:16.547 に答える