- - PR -
xpathでの親の表示について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-03 02:18
@ITのXindice:無料で使えるXMLデータベース
を勉強し始めたものですが XindiceServlet.java をベースにhtmlと連携させて検索機能を付けようと思っているのですが まずXMLデータとしては以下のものがあります <key_list> <key_t type="" id="1"> <name>科目</name> <keywords> <k_word>国語</k_word> <k_word>理科</k_word> </keywords> </key_t> <key_t ......> </key_t> <key_t ......> </key_t> </key_list> というように key_listの中にkey_t という子がたくさんあり Xpathを //key_t/keyword[k_name="国語"] (国語の部分はhtmlからwordとしてjavaに渡して) xpath = "//key_t/keywords[k_word=\'" + word + "\']" とすると返ってくるのは <?xml version="1.0" encoding="Shift_JIS" ?> <result> <keywords src:col="/db/recipedb" src:key="" xmlns:src="http://xml.apache.org/xindice/Query"> <k_word>国語</k_word> <k_word>理科</k_word> </keywords> </result> なのですが これを <?xml version="1.0" encoding="Shift_JIS" ?> <result> <keywords src:col="/db/recipedb" src:key="" xmlns:src="http://xml.apache.org/xindice/Query"> <key_t type="" id="1"> <name>科目</name> <keywords> <k_word>国語</k_word> <k_word>理科</k_word> </keywords> </key_t> と親まで返ってくるようにしたいのですが これはXpathを 改変すれば実現可能なのでしょうか? それができないとなるとプログラムを変えて、1次検索を行い 該当するもののkey_tの属性のidを保持しておいて 2次検索としてそれをxindiceに渡して検索させるべきなのかな と考えているのですが どうしても煮詰まってしまいご教授、アドバイスをお願いいたします 環境としては Windows XP Tomcat 4.1.30 Xindice 1.0 Java j2sdk1.4.0_03 です |
|
投稿日時: 2004-07-03 03:21
すみません
//key_t[keyword[k_name="国語"]] としたらできました それはできたのですが 絞込み検索のために 選択されたもののkey_t の属性id を保持しておきたいのですが それの実装はどうすればよいのでしょうか? XindiceServlet.java の // 5. XPathで検索 ResourceSet resultSet = service.query(xpath); // 6. ResourceSetから検索結果を取り出す ResourceIterator results = resultSet.getIterator(); while (results.hasMoreResources()) { Resource res = results.nextResource(); if (res.getResourceType().equals("XMLResource")) { org.xmldb.api.modules.XMLResource xmlres = (org.xmldb.api.modules.XMLResource)res; org.w3c.dom.Node node = xmlres.getContentAsDOM(); resultElement.appendChild(resultDocument.importNode(node.getFirstChild(), true)); } } 辺りを変えないといけないかなと漠然と考えているくらいなんですが ご教授お願いします |
1