タグ内のキーワード検索と多くのxmlファイルからの実際のデータを実行するJavaアプリケーションを作成する必要があります。オンラインでの調査から、xalanを使用する必要があると感じていますが、xalanの使用方法や機能がわかりません。誰かが私を正しい方向に向けることができますか?ありがとう
4 に答える
最初に行う必要があるのは、実際に検索するデータを決定することです。「タグ内と実データ内」というのは、要素名をキーワード検索するということですか?それとも、要素名とその中のコンテンツですか?
検索クエリの複雑さに応じて、Luceneなどの実際の検索エンジンを使用することをお勧めします。ただし、この手順を実行する前に、適切なインデックスを作成できるように、検索方法をよく検討する必要があります。
検索要件がより単純な場合は、ドキュメントを DOM にロードしてXPathを使用できます。Lucene に移行する前に、これを試してみることをお勧めします。
Xalan は必要ありません。JDK には、XML パーサーと XPath エバリュエーターが付属しています。それらの使用に関するいくつかの記事を書きました: ( parsing )、( xpath )。
XalanはXSLTプロセッサです。Xalan を使用すると、ソース XML ドキュメントを別のものに変換する XSL スタイルシートを作成できます。
もちろん、XSL 変換を作成してから、変換の結果を検索することもできます。
もう 1 つのオプションは、XML パーサーでドキュメントを解析してから Lucene を使用することです。Digester と Lucene を使用した XML ドキュメントの解析、インデックス作成、および検索を参照してください。
XPathを使用することもできます。それはすべて、正確に何を達成したいかによって異なります。
XPath 関数を使用して検索を行う方法については、この SO 投稿を参照してください。contains()
XPath クエリの実行方法の例については、Java XPath のドキュメントを参照することをお勧めします。彼らが提供するサンプルコードは次のとおりです。
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/widgets/widget";
InputSource inputSource = new InputSource("widgets.xml");
NodeSet nodes = (NodeSet) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
これにより、ファイルがロードされ、式に一致するすべてのノードがwidgets.xml
返されます。NodeSet
Java の XPath 実装を探しているようですね。これにより、検索式を作成し、それを 1 つ以上の XML ドキュメント (通常は解析済みである必要があります) に適用できます。Xalan は 1 つのオプションですが、他にもあります。Java 5 以降のバージョンの Java には、XML 解析機能と XPath 機能が含まれています。最近のバージョンの Java を使用していて、一連の XML ドキュメントを単純に解析および検索したい場合は、おそらく Java SDK 以外に何も必要ありません。
「すぐに使える」XPath 機能の概要については、この記事を参照してください。