0

我浏览了规范,找不到任何东西。但我认为 3.1 支持排序。

更新(对不起,我倾向于假设人们可以读懂我的想法,但我没有列出足够的细节):

我们在 Java 中这样做,所以我们调用:

XPathCompiler.compile(query);
XPathExecutable.load()

所以我们的查询通常是“/root/employees/employee”来获取所有员工的列表(来自 Southwind.xml)。

用 SQL-ish 术语来说,我们希望让我们的用户能够执行以下操作:

“/root/employees/employee 按姓氏降序,名字升序排列”。

根据下面的答案,我如何在 Java 代码中传递它?我看到了这个例子,但我不认为是 Java 代码(如果是,我不懂语法)。

而且,它可以在多个节点上排序(即,如果姓氏相等,则按名字排序)?

在此处使用示例代码提出更详细的问题。

4

1 回答 1

0

是的,请参阅fn:sortXPath和 XQuery Functions and Operators 3.1

概括

根据作为函数提供的排序键的值对提供的序列进行排序。

签名

fn:sort($input as item()*) as item()*

fn:sort($input as item()*, $collation as xs:string?) as item()*

fn:sort($input     as item()*,
        $collation as xs:string?,
        $key       as function(item()) as xs:anyAtomicType*) as item()*

[...]

例子

表达式fn:sort((1, 4, 6, 5, 3))返回(1, 3, 4, 5, 6)

[...]

于 2020-07-16T20:35:54.067 回答