2011-12-15 8 views
0

誰かがhtmlの指定された文字列に対してidで要素を効率的に検索しているかどうかは不思議です。私は2つの引数を受け取るメソッドを書いている:。idでHTML要素をJavaコードで検索する

public String getFilteredHtml(String html, Set<String> ids) 

に渡されたidをマッチング要素の連結HTMLを返します。現在、私は、ドキュメントにHTMLを解析することによって、これを達成するためにJSoupを使用しています方法、およびIDをループしてdocument.getElementByIdの結果を追加するか、または[id=id1],[id=id2]などのようなセレクタを使用してください。どちらの場合も同等のパフォーマンスで動作します。

しかし、私は助けることができませんでしたが、htmlドキュメントを解析しているときに、String id> Elementを含むマップがルックアップがずっと速く保たれていたことに気付きました。誰もがこの機能を持っているライブラリを知っていますか、それとも自分でそれを実装する方法を知っていますか?またはこれをより速く達成できる他の方法はありますか?

+0

あなたがしようとしていることを理解できません。もう少し詳細を教えていただけますか?あなたはHTML文字列からIDで取得した要素で正確に何をしていますか? – Evan

+0

これはajaxフィルタであり、サーブレットから生成されたhtmlを取り込み、ajaxを介してページ上で更新する必要のあるフラグメントのみを取り除くためにそれを削除します。 – user842800

答えて

0

SAXベースのHTMLパーサーを使用して、ドキュメントの解析中にマップを構築できます。たとえば、NekoHTMLまたはTagSoupのようなものです。どれくらい速くなるかは分かりませんが、ベンチマークする必要があります。

+0

カスタムサックスパーサーのように思えますが、かなり低いレベルであっても、それについては最良の方法です。私はそれを試してみましょう。 – user842800

関連する問題