質問
不正なHTMLページ内の特定のタイプを持つすべての要素を取得するためのJavaで最も簡単な方法は何ですか?だから私はこのような何かをしたい:
public static void main(String[] args) {
// Read in an HTML file from disk
// Retrieve all INPUT elements regardless of whether the HTML is well-formed
// Loop through all elements and retrieve their ids if they exist for the element
}
解決
HtmlCleaner に間違いなくそこに最高のHTMLパーサの一つであります不正なHTMLます。
ドキュメントは、いくつかのコードサンプルでをここにです。あなたは基本的にgetElementsByName()
方法を探しています。
JavaのHTMLパーサのの比較を見てみましょうあなたは他のライブラリを検討している場合。
他のヒント
私は tagsoup に使用して成功を収めてきました。相続人は彼らのホーム・ページからの短い説明:
、貧しい厄介なと野蛮な、しかしかなり頻繁に:このは、それが野生で見られるような代わりに整形式か、有効なXMLを解析するの、HTMLを解析し、ことをTagSoup、Javaで書かれたSAX準拠のパーサのホームページですはるかに短いから。 TagSoupは、合理的なアプリケーション設計のいくつかのうわべだけを使用してこのようなものを処理するために持っている人のために設計されています。 SAXインタフェースを提供することにより、それが標準のXMLツールでも最悪のHTMLに適用することができます。 TagSoupまた、HTMLファイルを読み込み、きれいなHTMLやXHTMLに近い近似である整形式のXMLのいずれかを生成することができ、コマンドラインプロセッサを含む。
チェック Jtidyするます。
JTidyは、HTML TidyののJavaのポートは、あります HTMLの文法チェッカーとかわいいです プリンタ。その非Javaいとこと同様に、 JTidyはのためのツールとして使用することができます 不正な形式や障害のあるHTMLをクリーンアップ。 また、JTidyは、DOMを提供します ある文書へのインタフェース これは効果的に、処理されています DOMとしてJTidyを使用して、あなたができるようになり 現実世界のHTMLのためのパーサます。