- - PR -
Xindice1.0のXPathに関して
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-25 11:03
以下のようなxmlから9月分のデータを取得するためにXPathを作成して検索しましたがデータを取得できません。
xpath : /top/group[date>='2006-09-01' and date<='2006-09-30'] どなたか、ご存知の方がおられましたら、ご教授願います。 少し長くなりますが、xmlデータとJava(1.4.2)のコードは、以下のようにしています。 【xmlデータ】 <top> .... <group> <date>2006-09-01</date> <item>item1</item> <value>100</value> </group> <group> <date>2006-09-02</date> <item>item2</item> <value>200</value> </group> ... <group> <date>2006-09-30</date> <item>itemN</item> <value>999</value> </group> <group> <date>2006-10-15</date> <item>itemX</item> <value>1500</value> </group> </top> 【処理コード】 ..... String query_results = ""; String col_name = "data"; String query = "/top/group[date>='2006-09-01' and date<='2006-09-30']"; org.xmldb.api.base.Collection col = null; try { // Database実装クラスの登録 String driver = "org.apache.xindice.client.xmldb.DatabaseImpl"; try { Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); } catch (Exception e) { e.printStackTrace(); } // コレクションの取得 col = DatabaseManager.getCollection(this.XindiceServer + col_name); if (col != null) { // XPathQueryServiceの取得 XPathQueryService service = (XPathQueryService) col.getService("XPathQueryService", "1.0"); // XPathで検索 ResourceSet resultSet = service.query(query); // ResourceSetから検索結果を取り出す ResourceIterator results = resultSet.getIterator(); query_results = "<Results>\\n"; while (results.hasMoreResources()) { Resource res = results.nextResource(); String s = (String) res.getContent(); query_results += s + \\n; } query_results += "</Results>\\n"; } } catch (XMLDBException e) { e.printStackTrace(); } finally { if (col != null) { // コレクションのクローズ try { col.close(); } catch (Exception e) { e.printStackTrace(); } } } System.out.println("result="+query_results); ..... 以上、よろしくお願いします。 | ||||
|
投稿日時: 2006-12-26 10:48
試していませんが、
でどうでしょうか。もっと簡単な方法もあるのかもしれませんが… [ メッセージ編集済み 編集者: uk 編集日時 2006-12-26 10:49 ] | ||||
|
投稿日時: 2006-12-26 22:43
UKさん
ありがとうございました。 早速ためしてみます。 【自己レス】 日付部分のフォーマット部分をyyyyMMddに変更して 一応データを取得できるようになりました。 |
1