使用xquery按本地名称对树进行排序 声明函数本地:排序($container){ 元素{$container/name()}{ 对于$container中的$child/* 按$child/local-name()订购 返回本地:排序($child)

使用xquery按本地名称对树进行排序 声明函数本地:排序($container){ 元素{$container/name()}{ 对于$container中的$child/* 按$child/local-name()订购 返回本地:排序($child) ,xquery,Xquery,使用xquery按本地名称对树进行排序 声明函数本地:排序($container){ 元素{$container/name()}{ 对于$container中的$child/* 按$child/local-name()订购 返回本地:排序($child) } }; 让$doc:= 返回本地:排序($doc) 那么,您希望递归调用的函数在哪里?变量在哪里声明/绑定? I want the below XML <a> <z> <e> <b>

使用xquery按本地名称对树进行排序
声明函数本地:排序($container){
元素{$container/name()}{
对于$container中的$child/*
按$child/local-name()订购
返回本地:排序($child)
}
};
让$doc:=
返回本地:排序($doc)

那么,您希望递归调用的函数在哪里?变量在哪里声明/绑定?
I want the below XML
<a>
<z>
   <e>
   <b>
<c>

Sorted as such    
<a>
<c>
<z>
   <b>
   <e>
let $child-elements := $elements/*
return
    if ($child-elements) then
        myfunctx:sort($child-elements, $current-element)
    else 
        element { xs:Qname ($local-name)} , {$current-element, $result) ???
declare function local:sort($container){
  element {$container/name()} {
    for $child in $container/*
    order by $child/local-name()
    return local:sort($child)
  }
};

let $doc := <doc>
  <a/>
  <z>
    <e/>
    <b/>
  </z>
  <c/>
</doc>
return local:sort($doc)