- - PR -
XmldbでLike検索
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-05 02:39
はじめまして。
阿比留と申します。 SQLは使ったことがあるのですが、XML自体初めてで Xindiceと格闘しております。 ORDERBYやLIKE検索などが使えるものなのかWEBで調 べているのですが、見つけることが出来ません。 ORDERBYは今のところHTMLに変換するXSLTで並べ 替えています。 Xindiceでは出来ないものなのでしょうか? 詳しい方教えていただけますと幸いです。 | ||||
|
投稿日時: 2003-12-06 16:33
はじめまして、なゆ♪と申します。
SQLは使ったことがないので目的としているものとは違うかもしれませんが。。。 私もXindiceから検索するプログラムを作っているので 何かの参考にはなるかもしれません。 JAVAで検索する、ということでよろしいのでしょうか? LIKE検索について調べたところ、キーワード部分一致検索、というような感じですね。 私はこれについては、以下のコードで行っております。 ちなみにこのコードは以下のサンプルを改良したものの一部です。 http://www.atmarkit.co.jp/fxml/tanpatsu/18xindice/xindice06.html
ちょっと強引なやり方っぽいのでもっといい方法があるかも まぁ何かの参考になれば幸いです。 ここでLIKE検索に当たるのは、 String query = "//*[text()[contains(.,"○○○")]]"; Node txt = org.apache.xpath.XPathAPI.selectSingleNode(node, query); の部分です。 Nodeに対してXPathで検索をかけています。 この方法により、Xindiceに格納されているデータから、 テキストノードに○○○が含まれているデータを抽出できます。 このメソッドについては、以下にAPIがあります。 http://xml.apache.org/xalan-j/apidocs/index.html 他にもNodeListを抽出するAPIもあるので、XPathを工夫すればいろいろできそうです。 ORDERBYについては・・・ちょっとわからないです | ||||
|
投稿日時: 2003-12-08 02:53
なゆ♪さんはじめまして。
ご解答ありがとうございます。 >JAVAで検索する、ということでよろしいのでしょうか? >LIKE検索について調べたところ、キーワード部分一致検索、というような感じですね。 そうです。JAVAで検索です。 LIKE検索という表現はSQLだけでしたね。 申し訳ないです。 >ここでLIKE検索に当たるのは、 > String query = "//*[text()[contains(.,"○○○")]]"; > Node txt = org.apache.xpath.XPathAPI.selectSingleNode(node, query); >の部分です。 >Nodeに対してXPathで検索をかけています。 containsはxsltの方で使ってみたのですが、検索したい文字を渡すと 文字化けしてしまって上手く行っていませんでした。 まずはXpathですね。調べてみようと思います。 だいぶ混乱していたのですが先が見えてきて大変助かりました。 取り急ぎお礼まで。 | ||||
|
投稿日時: 2003-12-10 02:10
阿比留さん、お役に立てたようでなによりです。
私もまだまだ勉強中の身なので、お互い頑張りましょう(o^-')b |
1