11

XML 文件

<Cities>
  <Place>
    <City n="New Delhi"></City>
    <City n="Chandigarh"></City>
    <City n="Mumbai"></City>
  </Place>
  <Place>
    <City n="New Delhi"></City>
    <City n="Chandigarh"></City>
  </Place>
  <Place>
    <City n="New Delhi"></City>
    <City n="Mumbai"></City>
  </Place>
</Cities>

我正在使用以下 XQuery -

for $x in doc("sample")/Cities/Place/City
   order by $x/@n
   return distinct-values($x/@n)

我期待的结果是—— Chandigarh Mumbai New Delhi

但得到 - Chandigarh Chandigarh Mumbai Mumbai New Delhi New Delhi New Delhi

请告诉我我哪里出错了?

4

4 回答 4

14

请试试这个 -

for $x in distinct-values(doc("sample")/Cities/Place/City/@n)
   order by $x
   return $x

我已经用 baseX 7.1 进行了同样的检查,并按照您的预期顺利工作:)

于 2012-06-18T08:28:43.383 回答
6

您现在分别调用distinct-values每个值。distinct-values返回序列中的不同值,但该序列现在仅包含一个元素。您应该调用distinct-values(...)where...是城市名称的序列。

于 2012-06-18T08:11:10.440 回答
0

不同值函数

let $items := (1,2,4,4,5,5,9,9,9,9,3,3,2)
let $unique-items-by := distinct-values($items)
return
   <result>   

      <items>
      {
         for $item in $unique-items-by
         return <item>{$item}</item>
      }
      </items>

   </result>
于 2016-04-23T04:59:03.447 回答
0

distinct-values 函数用于
唯一项

 let  $x:=doc("/db/my.xml")
let $unique-items := distinct-values($x)
 for $x in $unique-items

return (
 $unique-items
)
于 2016-04-23T05:01:33.613 回答