2012-03-08 21 views
0

特定のコードについての助けが必要です。特定の属性を持つ要素を返すJDOM

私はdocumentオブジェクトをjdomに持っています。私はまた、ルートのelementオブジェクトを持っています。今私は、属性の値に基づいて特定の要素を取得したい。しかし、私が避けたいのは、子要素の完全なリストをフィルタリングして、要素を1つだけ取得することです。そこで、ドキュメントの値をフィルタリングする方法があります。

今私は、「ID」値が「123」

ある要素がこれを行うための最善の方法は何ですか?したい私の属性値が「123」

であると言うことができますか

親切にしてください。

答えて

3

これにはXPathを使用します。私は特定の属性を持つ要素を見つけるために、一度の要素を検索するために必要な場合

1):次の式では:私はこの問題に直面していた場合//element[@attribute='value']

+0

xpathをJDOMで使用する方法についてもっと教えてください.JDOMのドキュメントはあまり具体的ではないので、私は見つけたチュートリアルもありません。 –

+1

私はJDomでXPathを使ったことは一度もありませんが、XPath xpath = XPath.newInstance( "// element [@ attribute = 'value']"); 'を使ってXPath式を構築し、あなたのルート要素(または文書、TBC): 'xpath.selectNodes(rootElement);'。 XPath式、google "xpathチュートリアル"の詳細については、たくさんあります –

2

、私はそれを2つの方法のいずれかを解決するだろう価値は、私は簡単な検索を行うだろう。 JDOMのメリット(およびデメリット)は、ドキュメント全体をメモリに格納するため、エレメントが多数ある場合でも、エレメントをすばやく検索できます。 XPathを使用していても(それに精通していないことを認めても、以前の回答が判明しています)、同じことをしている可能性があるので、このソリューションはあまり効率的ではありません。一般に、事前構築されたソリューションを使用すると、コードを書く必要がなくなります(この場合、独自のコードはかなり小さくなります)。しかし、一般的なソリューションを使用しているので、あなたのニーズに合わせて特別に作られたものではありません。

2)複数の検索が必要な場合は、そのキーが属性値であるところのHashMapを作成します。

これらのソリューションのいずれかがメリットがあると思われますが、追加の質問がありますか、サンプルコードが必要な場合は、私に電子メールで詳細をお知らせください。

関連する問題