 |
package jp.co.ulsystems.xmldb.logic;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.neocore.httpclient.SessionManagedNeoConnection;
public class ProposalSearchLogic {
public static final String BEANNAME = "logic";
private String condition = "";
private String queryResultsXml = "";
public ProposalSearchLogic(HttpServletRequest request,HttpServletResponse response) throws Exception {
queryResultsXml = null;
condition = (String)request.getParameter("keyword");
}
public void execute(){
// XQueryの作成
String query = "for $data in /ND sortby (integer(.//DocID/text()))"
+ " let $title := $data//frame[@name='提案タイトル']//text()"
+ " ,$docId := $data//DocID/text()"
+ " where contains($data//text(),'"
+ condition
+ "')"
+ " return"
+ ""
+ "{string($title)}"
+ "{string($docId)}"
+ "";
try{
// XQueryを使用し検索を実行する
// XMLDBとのセッションを確立
SessionManagedNeoConnection session =
new SessionManagedNeoConnection("localhost",7701);
session.login("Administrator","admin");
// 検索の実行
queryResultsXml = session.queryXML(query);
// XMLDBからログアウト
session.logout ();
} catch (Exception e) {
e.printStackTrace();
}
}
public String getQueryResultsXml() {
return queryResultsXml;
}
}
|
 |