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检查了相同的内容并按照您的预期顺利运行:)
您现在分别调用distinct-values每个值.distinct-values返回序列中的不同值,但序列现在只包含一个元素.你应该叫distinct-values(...)这里...是城市名的序列.