Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XQuery将同时获取和插入_Xml_Xpath_Xquery_Basex_Xquery Update - Fatal编程技术网

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