I want to use XQuery For Xml processing in java

二次信任 提交于 2019-12-07 05:23:42

问题


I want to use XQuery for fetching data from Xml in java, but I am not getting which Jar I need to add for this. I searched in google lot but haven't got any useful example. For example I got following link:

https://docs.oracle.com/database/121/ADXDK/adx_j_xqj.htm

Then I am not getting jar file mentioned here. Anyone know how to start using XQuery in Java with a simple example will be very helpful. After lot of search I have got this link which is saying Xqjapi.jar comes with oracle database.

https://technology.amis.nl/2011/07/30/running-xquery-from-java-applications-using-the-xqj-api-and-the-oracle-xdk-implementation/

Is there any open source api I can use in Java for using XQuery?


回答1:


Well, there is another approach to get the required JARS, you need not install oracle database for that. I found the solution in this link,

http://orafmwsoa.blogspot.co.at/2014/06/running-xquery-from-java-applications.html

But you need not go through the entire link, what important point to note is, all necessary JARS are available from Oracle XQuery for Hadoop implementation.

And here is the link,

Oracle XQuery for Hadoop 2.4.1

Just download Oracle XQuery for Hadoop 4.1.0 and extract and create a normal Java Project with the libraries in path.

I tried this example from your link, and it works

import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQPreparedExpression;
import javax.xml.xquery.XQSequence;
import oracle.xml.xquery.OXQDataSource;


public class HelloWorld {

public static void main(String[] args) throws XQException {
    OXQDataSource ds = new OXQDataSource();
    XQConnection con = ds.getConnection();
    String query = "<hello-world>{1 + 1}</hello-world>";
    XQPreparedExpression expr = con.prepareExpression(query); 
    XQSequence result = expr.executeQuery();
    System.out.println(result.getSequenceAsString(null));

    result.close();
    expr.close();
    con.close();
}

}

With following JARS in path,

apache-xmlbeans

orai18n-mapping

oxquery

xmlparserv2_sans_jaxp_services

xqjapi

Also another suggestion,

  1. I installed Oracle Express Edition 11.2 OracleXE112_Win64 and it didn't had the required JARS, XE may be has limited functionality, so try installing different one.
  2. Also this link here Embedding XQuery in Java suggests usage of SAXON XSLT & XQuery processor. SAXON



回答2:


If the XML is in filestore, then you need a filestore-based XQuery processor such as Saxon.



来源:https://stackoverflow.com/questions/30412986/i-want-to-use-xquery-for-xml-processing-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!