我正在使用Saxon 9.0.4并在我的Eclipse项目中包含Home Edition jar。但每当我发出查询字符串时,什么也没发生,我没有得到任何输出。当我从命令行使用以下命令时,我得到了正确的结果:
java -cp saxon.jar net.sf.saxon.Query samplequery.xqy
这是我的问题:
doc("rcmdemo5.xml")/book/chapter
以下是代码,我正在使用:
XQDataSource xqds = new SaxonXQDataSource();
XQConnection conn = xqds.getConnection();
XQExpression expr = conn.createExpression();
String es = "doc(\"rcm.xml\")/book/chapter";
XQResultSequence result = expr.executeQuery(es);
while (result.next()) {
String str = result.getAtomicValue();
System.out.println("Product name: " + str);
}
result.close();
expr.close();
conn.close();
我哪里错了? 此外,是否可以从字符串而不是文件中获取输入?
答案 0 :(得分:0)
您的查询返回一个零个或多个元素节点的序列(我假设你说它实际上是一个或多个)。 XQJ规范声明当调用getAtomicValue()时,结果序列中的当前项必须是原子值,否则抛出异常(它不会将结果原子化)。所以我希望这会引发异常。