我想在java中使用XQuery For Xml处理

时间:2015-05-23 13:01:45

标签: java xml xpath xquery javax.xml

我想使用XQuery从java中的Xml中获取数据,但我没有得到我需要为此添加的Jar。我搜索谷歌很多,但没有任何有用的例子。例如,我得到以下链接:

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

然后我没有得到这里提到的jar文件。任何人都知道如何在Java中开始使用XQuery,这将是一个非常有用的例子。经过大量的搜索,我得到了这个链接,它说Xqjapi.jar附带了oracle数据库。

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

我是否可以在Java中使用任何开源API来使用XQuery

2 个答案:

答案 0 :(得分:6)

嗯,还有另一种获取所需JARS的方法,你不需要为此安装oracle数据库。我在这个链接中找到了解决方案,

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

但是您无需浏览整个链接,需要注意的是,Oracle XQuery for Hadoop实现中提供了所有必需的JARS

这是链接,

Oracle XQuery for Hadoop 2.4.1

只需下载Oracle XQuery for Hadoop 4.1.0,然后使用路径中的库提取并创建一个普通的Java Project。

我在您的链接中尝试了此示例,但它可以正常工作

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();
}

}

在路径中跟随JARS

  

阿帕奇-的xmlbeans

     

orai18n-mapping

     

oxquery

     

xmlparserv2_sans_jaxp_services

     

xqjapi

另一个建议,

  1. 我安装了Oracle Express Edition 11.2 OracleXE112_Win64但它没有所需的JARS,XE可能功能有限,所以请尝试安装不同的功能。
  2. 此处此链接Embedding XQuery in Java建议使用SAXON XSLT&amp; XQuery处理器。 SAXON

答案 1 :(得分:0)

如果XML在filestore中,那么你需要一个基于文件存储的XQuery处理器,比如Saxon。