Xml XQuery将同时获取和插入
我正在检索数据并将其插入另一个文件。但插入的数据没有排序。下面是我努力实现的一个例子Xml XQuery将同时获取和插入,xml,xpath,xquery,basex,xquery-update,Xml,Xpath,Xquery,Basex,Xquery Update,我正在检索数据并将其插入另一个文件。但插入的数据没有排序。下面是我努力实现的一个例子 let $n := <N> <n>Lemon</n> <n>Chickoo</n> <n>Banana</n> <n>Orange</n> <n>Pineapple</n> <n>Apple</n> <n>Lemon</n> <
let $n := <N>
<n>Lemon</n>
<n>Chickoo</n>
<n>Banana</n>
<n>Orange</n>
<n>Pineapple</n>
<n>Apple</n>
<n>Lemon</n>
<n>Chickoo</n>
<n>Banana</n>
</N>
for $x in distinct-values($n/n)
order by $x
return
insert node <n>{$x}</n> into doc('fruits')/fruit
虽然在检索时提到过,但它不是有序的 我觉得它像个虫子。说明书上说: 如果由单个插入表达式插入多个节点,则它们的顺序将保留源表达式的节点顺序 这并不十分清楚,但我认为这意味着你有权期望结果得到正确的排序
您正在使用什么样的XQuery Update实现?这是BaseX如何计算
order by
FLWOR子句的一个错误,该子句现在已记录在上。return
子句在排序之前计算,而不是在后置词之后计算,因此以错误的顺序添加更新
解决方法是在另一个FLWOR表达式中进行排序:
for $x in
for $d in distinct-values($n/n)
order by $d
return $d
order by $x
return
insert node <n>{$x}</n> into doc('fruits')/fruit
这是BaseX中的一个bug,我在GitHub上提交了一个。
for $x in
for $d in distinct-values($n/n)
order by $d
return $d
order by $x
return
insert node <n>{$x}</n> into doc('fruits')/fruit
insert nodes
for $x in distinct-values($n/n)
order by $x
return <n>{$x}</n>
into doc('fruits')/fruit