Java XPathCompiler.compile()在“0”上引发异常;“订购”;

Java XPathCompiler.compile()在“0”上引发异常;“订购”;,java,saxon,Java,Saxon,对于以下代码,它抛出一个异常。由于订购人 Configuration config = createEnterpriseConfiguration(); Processor processor = new Processor(config); XPathCompiler xpath = processor.newXPathCompiler(); XPathExecutable exe = xPath.compile("for $x in /Order_1/Order_2 order by $x/

对于以下代码,它抛出一个异常。由于订购人

Configuration config = createEnterpriseConfiguration();
Processor processor = new Processor(config);
XPathCompiler xpath = processor.newXPathCompiler();
XPathExecutable exe = xPath.compile("for $x in /Order_1/Order_2 order by $x/@id descending, $X/@name ascending return $x");
它适用于:

XPathExecutable exe = xPath.compile("for $x in /Order_1/Order_2 return $x");
XPathException
是:

Message: net.sf.saxon.trans.XPathException: expected "return", found name "order"
Location: XPath syntax error at char 27 near {...x in /Order_1/Order_2 order...}:
在这种情况下,如何设置orderby?

在XPath中“orderby”子句不可用,仅在XQuery中可用

请改用XQueryCompiler

XPath 3.0实际上有一个sort()函数,但它的功能可能不够,例如,它不能处理升序键和降序键的混合。

在XPath中“order by”子句不可用,仅在XQuery中可用

请改用XQueryCompiler


XPath 3.0实际上有一个sort()函数,但它的功能可能不够,例如,它不能处理升序键和降序键的混合。

这到底是怎么回事?我给出了一个完整的代码示例。我无法通过搜索找到任何有关处理compile()调用的“order by”的信息。例如,请参阅。@LukeWoodward——据我所知,XPath2.0是XQuery的查询部分。所以我认为这应该不是问题。毕竟,没有“orderby”部分的查询是有效的。这到底是怎么回事?我给出了一个完整的代码示例。我无法通过搜索找到任何有关处理compile()调用的“order by”的信息。例如,请参阅。@LukeWoodward——据我所知,XPath2.0是XQuery的查询部分。所以我认为这应该不是问题。毕竟,没有“order by”部分的查询是有效的。是否有一个示例说明如何最好地使用它?我相信我们希望从XQuery得到的最终结果是一个XdmValue,它包含一个XdmItem对象列表,每个匹配查询的节点对应一个。对吗?你有没有一个关于如何最好地使用Saxon实现这一点的例子?ps-我之所以这样问,是因为我继承的代码会编译/加载/计算两次。一次获取唯一的XPath语句,然后执行该唯一语句。这让我觉得没有必要。在SourceForge和saxonica.com网站上提供的saxon参考资料下载中有s9api用于XPath和XQuery的示例。是的,我已经浏览了所有我能找到的示例。没有显示如何只执行查询并获取结果。很多似乎都是围绕XSLT或将结果写入流而构建的。你能推荐一个我正在尝试做的事情吗?在代码中获取结果?我会下载()以防我的内容不完整。但是下载的只是程序,没有样本。我拆下了EE。有没有一个样本可以说明如何最好地使用它?我相信我们希望从XQuery得到的最终结果是一个XdmValue,它包含一个XdmItem对象列表,每个匹配查询的节点对应一个。对吗?你有没有一个关于如何最好地使用Saxon实现这一点的例子?ps-我之所以这样问,是因为我继承的代码会编译/加载/计算两次。一次获取唯一的XPath语句,然后执行该唯一语句。这让我觉得没有必要。在SourceForge和saxonica.com网站上提供的saxon参考资料下载中有s9api用于XPath和XQuery的示例。是的,我已经浏览了所有我能找到的示例。没有显示如何只执行查询并获取结果。很多似乎都是围绕XSLT或将结果写入流而构建的。你能推荐一个我正在尝试做的事情吗?在代码中获取结果?我会下载()以防我的内容不完整。但是下载的只是程序,没有样本。我拉下了电灯。