C#でHTMLのフラグメントを解析する最良の方法は何ですか?
文脈上、大量の複合コントロールを使用するアプリケーションを継承しましたが、これは問題ありませんが、かなりの数のコントロールが長い一連のリテラル コントロールを使用してレンダリングされており、かなり恐ろしいものです。私はアプリケーションを単体テストに入れようとしています。これらのコントロールをテストして、適切に形成された HTML を生成しているかどうかを確認し、夢のソリューションでその HTML を検証したいと考えています。
C#でHTMLのフラグメントを解析する最良の方法は何ですか?
文脈上、大量の複合コントロールを使用するアプリケーションを継承しましたが、これは問題ありませんが、かなりの数のコントロールが長い一連のリテラル コントロールを使用してレンダリングされており、かなり恐ろしいものです。私はアプリケーションを単体テストに入れようとしています。これらのコントロールをテストして、適切に形成された HTML を生成しているかどうかを確認し、夢のソリューションでその HTML を検証したいと考えています。
HTMLAgilityパックを ご覧ください。.NET XmlDocument クラスとの互換性は非常に優れていますが、クリーンで有効な XHTML ではない HTML については、より寛容です。
HTML が XHTML に準拠している場合は、組み込みの System.Xml 名前空間を使用できます。
私はSGMLReaderを使用して HTML から有効な Xml ドキュメントを生成し、XPath を使用して必要なものを解析するか、XSLT を使用して別の形式に解析しました。.
HTMLの解析/クリーンアップのためにHTML Tidyを調べることもできます。特定の .NET ライブラリがあるとは思いませんが、コマンドラインからバイナリを実行するか、Java ライブラリの IKVM を実行できる可能性があります。