XMLDocumentオブジェクトに不正な形式のHTMLを読み込もうとしていますが、余分な開始/終了タグがあり、代わりに<img >
などの不正なXMLタグがあるため、XMLExceptionsで失敗します。 <img />
不正なXMLを解析する
データのすべてのエラーをXMLで解析するにはどうすればよいですか?これらのエラーを修正するために、解析する前に私が適用できるXMLバリデーターはありますか?または、例外を処理することは何でも解析できますか?
XMLDocumentオブジェクトに不正な形式のHTMLを読み込もうとしていますが、余分な開始/終了タグがあり、代わりに<img >
などの不正なXMLタグがあるため、XMLExceptionsで失敗します。 <img />
不正なXMLを解析する
データのすべてのエラーをXMLで解析するにはどうすればよいですか?これらのエラーを修正するために、解析する前に私が適用できるXMLバリデーターはありますか?または、例外を処理することは何でも解析できますか?
HTML Agility Packを解析しますxhtmlではなくhtmlであり、非常に寛容です。 XmlDocument
を使用した場合、オブジェクトモデルは使い慣れたものになります。
これは、エンドタグが見つからないノードのツリーを含むXMLでうまく機能しました。提案していただきありがとうございます! –
あなたがしようとしていることは非常に困難です。 XMLは厳密でHTMLはそうでないため、XMLパーサを使用してHTMLを解析することはできません。そのHTMLが準拠したXHTML(XMLとしてのHTML)であった場合、XMLパーサーは問題なくHTMLを解析します。
本当にHTML用のXMLパーサーを使用する場合は、そこにHTMLからXHTMLコンバーターがあるかどうかを確認することをお勧めします。言い換えれば
、私は不正な形式のXMLを扱うXMLパーサーを満たすためには至っていない...彼らは(:)あまりにも、正当な理由のために)HTMLのような緩やかなマークアップを受け入れるように設計されていない
this questionをご確認ください。
基本的には、beautifulsoupの.NETポートとHTMLの敏捷性パックの間には道があります。
このレベルの不正な構造を持つXmlDocumentを構築することはできません。 XmlDocument(私の知る限り)は、XMLコンテンツが適切なネストとクロージャの構文に準拠していることを要求しています。
ただし、代わりにこれをXmlReaderで解析できると考えられます。特定の重大なエラーが発生した場合でも例外をスローする可能性がありますが、MSDNドキュメントによれば、少なくともエラーの場所を開示することができます。
ちょうどHTMLを扱っている場合は、HTML Agility Packがあります。これはあなたの目的に役立ちます。
不正な形式のXMLをXmlDocument
に読み込むことはできません。
は彼特有のニーズONTによってはCodePlexの
にHtml Agility Packをチェックアウト、あなたはXMLDocumentオブジェクトを使用して、それをインポートし、クリーンアップに文書をHTML Tidyを使用することができるかもしれません。
奇形のアイデアがある場合は、例外を処理して試してみます... – abmv
その型が間違っていると、それは怒り(XMLException)をスローし、それをまったく解析しません! childNodesは存在しません。 –
http://stackoverflow.com/questions/28909882/dealing-with-malformed-xml – Sobrique