使用distinct-values时的XQuery()

10 xml xpath xquery

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>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下XQuery -

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

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

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

请告诉我哪里出错了?

Joh*_*ohn 13

请尝试这个 -

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

我已经使用baseX 7.1检查了相同的内容并按照您的预期顺利运行:)


Sim*_*ser 5

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