xml - XPath 3.1(不是 XQuery)中有没有办法对结果进行排序?
问题描述
我浏览了规范,找不到任何东西。但我认为 3.1 支持排序。
更新(对不起,我倾向于假设人们可以读懂我的想法,但我没有列出足够的细节):
我们在 Java 中这样做,所以我们调用:
XPathCompiler.compile(query);
XPathExecutable.load()
所以我们的查询通常是“/root/employees/employee”来获取所有员工的列表(来自 Southwind.xml)。
用 SQL-ish 术语来说,我们希望让我们的用户能够执行以下操作:
“/root/employees/employee 按姓氏降序,名字升序排列”。
根据下面的答案,我如何在 Java 代码中传递它?我看到了这个例子,但我不认为是 Java 代码(如果是,我不懂语法)。
而且,它可以在多个节点上排序(即,如果姓氏相等,则按名字排序)?
解决方案
是的,请参阅fn:sort
XPath和 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)
。[...]
推荐阅读
- python - 创建一个零的 3D 张量,在 numpy/jax 中的每个切片上随机放置一个“1”
- c# - 如何动态创建表达式
> 带有字符串参数的谓词? - java - 如果将旧日期与当前日期一起传递,则 Date before 方法返回 false
- keypress - 字符转换
- javascript - 从数组映射 wordpress 帖子
- javascript - 计算表格中复选框的数量和数量
- c# - Json数据检索
- apache - 使用 .htaccess 始终重定向到 index.php 时出现 500 内部服务器错误
- python - 使用 Selenium 通过自定义按钮属性查找元素
- sql - Access SQL 查询:仅显示重复记录的最新记录