不正な形式のXMLをパース
-
13-09-2019 - |
質問
私は、XMLDocumentオブジェクトに(おそらく)の作品をロードするために不正なHTMLをしようとしているが、それはXMLExceptionsで失敗...余分な開口部/終了タグがあるので、そのような代わり<img >
の<img />
として不正な形式のXMLタグ
どのように私は、データのすべてのエラーを解析するXMLを得るのですか?私はこれらのエラーを修正するために、解析する前に適用することができます任意のXMLバリデータはありますか?または解析することができるものは何でも、例外解析を扱うのでしょうか?
解決
HTML敏捷性パックのではなく、XHTMLよりも、HTMLを解析し、非常に寛容であるだろう。あなたがXmlDocument
を使用した場合のオブジェクトモデルは、よく知られています。
他のヒント
あなたはhref="https://stackoverflow.com/questions/118654/iron-python-beautiful-soup-win32-app">にこの質問を答えをチェックアウトする場合があります。
基本的にはどこかbeautifulsoupの.NETポートとHTMLの敏捷性パックの間に方法はあります。
それはあなたが不正な構造のこのレベルを持っているXmlDocumentオブジェクトを構築することができるとは考えにくいです。 (私の知る限り)のXmlDocument XMLコンテンツが適切な入れ子と閉鎖構文に準拠していることが必要です。
しかし、あなたが代わりにしたXmlReaderでこれを解析することができることを疑います。特定の悪質なエラーが発生した場合は、まだ例外をスローすることがありますが、MSDNのドキュメントによれば、少なくとも、エラーの場所を開示することができます。
あなただけのHTMLを扱っている場合は、 HTML敏捷性パック、あなたの目的を果たすことがある。
彼特有のニーズONTによっては、あなたがして、 HTML Tidyののクリーンアップにドキュメントを使用することができるかもしれませんXMLDocumentオブジェクトを使用して、それをインポートします。
何をしようとしていることは非常に困難です。 XMLは厳密で、HTMLではないので、HTMLはXMLパーサーを使用して解析することはできません。そのHTML準拠XHTML(XMLとしてHTML)した場合、XMLパーサーは問題なくHTMLを解析します。
あなたが本当にHTMLのためのXMLパーサーを使用したい場合は、あなたは、XHTMLコンバータに任意のHTMLがそこにあるかどうかを確認したい場合があります。
言い換えれば、私は、不正な形式のXMLを扱うXMLパーサーを満たすためには至っていない...彼らは(:)あまりにも、正当な理由のために)HTMLのような緩やかなマークアップを受け入れるように設計されていません。
あなたはXmlDocument
に不正な形式のXMLを読み込むことができません。