可以通过字段和方向的组合进行排序吗?

时间:2013-01-03 12:06:41

标签: xquery marklogic

可以通过字段和方向的组合进行排序吗? IEP>

let $list := (<a id="1">A</a>, <a id="2">A</a>, <a id="3">B</a>)
let $ordered :=
    for $item in $list
        order by $item/text ascending, $item/@id descending
        return fn:data($item/@id)
return 
    if(fn:deep-equal((2,1,3),$ordered)) then "PASS" else "FAIL"

1 个答案:

答案 0 :(得分:1)

您要对$item/text(这意味着<text/>内的元素$item)进行排序,而不是对函数$item/text()所解决的内容进行排序。

let $list := (<a id="1">A</a>, <a id="2">A</a>, <a id="3">B</a>)
for $item in $list
  order by $item/text() ascending, $item/@id descending
  return fn:data($item/@id)

将产生所需的输出(2,1,3)