5

我想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

4

2 回答 2

6

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

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

但是您不必浏览整个链接,需要注意的重要一点是,所有必要JARS的都可以从 Oracle XQuery for Hadoop 实施中获得。

这是链接,

Oracle XQuery for Hadoop 2.4.1

只需下载Oracle XQuery for Hadoop 4.1.0并解压缩并使用路径中的库创建一个普通的 Java 项目。

我从您的链接中尝试了这个示例,它有效

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路径,

apache-xmlbeans

orai18n映射

查询

xmlparserv2_sans_jaxp_services

xqjapi

还有一个建议,

  1. 我安装了 Oracle Express Edition 11.2 OracleXE112_Win64,但它没有所需的JARS,XE 可能功能有限,所以尝试安装不同的。
  2. 此外,此链接在 Java 中嵌入 XQuery建议使用 SAXON XSLT 和 XQuery 处理器。撒克逊
于 2015-05-23T15:38:15.787 回答
0

如果 XML 在文件存储中,那么您需要基于文件存储的 XQuery 处理器,例如 Saxon。

于 2015-05-23T18:03:47.760 回答