7

(おそらく) 不正な形式の HTML の一部を XMLDocument オブジェクトに読み込もうとしていますが、XMLExceptions で失敗します... 余分な開始タグと終了タグがあり、不正な形式の XML タグ (<img >代わりに<img />

データ内のすべてのエラーで XML を解析するにはどうすればよいですか? これらのエラーを修正するために、解析する前に適用できる XML バリデーターはありますか? または、例外を処理すると、解析できるものは何でも解析されますか?

4

6 に答える 6

15

HTML Agility Packは、xhtml ではなく html を解析し、非常に寛容です。オブジェクト モデルは、 を使用したことがあればおなじみでしょうXmlDocument

于 2009-06-15T14:56:38.830 に答える
2

この質問への回答を確認することをお勧めします。

基本的に、beautifulsoup の .NET ポートと HTML アジリティ パックの間のどこかに方法があります。

于 2009-06-15T14:56:54.697 に答える
1

このレベルの不正な構造を持つ XmlDocument を作成できる可能性はほとんどありません。XmlDocument (私の知る限り) では、xml コンテンツが適切なネストおよびクロージャー構文に準拠している必要があります。

ただし、代わりに XmlReader を使用してこれを解析できると思われます。特定の重大なエラーが発生した場合でも例外がスローされる可能性がありますが、MSDN ドキュメントによると、少なくともエラーの場所を開示できます。

HTML だけを扱っている場合は、目的に役立つHTML Agility Packがあります。

于 2009-06-15T14:57:32.120 に答える
1

特定のニーズに応じて、HTML Tidyを使用してドキュメントをクリーンアップし、XMLDocument オブジェクトを使用してインポートできる場合があります。

于 2009-06-15T15:00:17.480 に答える
0

あなたがやろうとしていることは非常に難しいです。XML は厳密で HTML は厳密ではないため、XML パーサーを使用して HTML を解析することはできません。その HTML が準拠した XHTML (XML としての HTML) である場合、XML パーサーは HTML を問題なく解析します。

HTML 用の XML パーサーを本当に使用したい場合は、HTML から XHTML へのコンバーターがあるかどうかを確認することをお勧めします。

言い換えれば、不正な形式の XML を処理する XML パーサーにまだ出会ったことがありません...それらは HTML のような緩いマークアップを受け入れるようには設計されていません (正当な理由もあります :) )。

于 2009-06-15T14:56:17.693 に答える
0

不正な形式の XML を にロードすることはできませんXmlDocument

CodePlexのHtml Agility Packをチェックしてください

于 2009-06-15T14:58:12.243 に答える