使用distinct-values时的XQuery()

时间:2012-06-18 08:05:35

标签: 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>

我正在使用以下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 个答案:

答案 0 :(得分:11)

请试试这个 -

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:0)

distinct-values函数

@Service("mySpecialBean")
public class MyBean implements BeanBase {

}

public class App {
    @Autowired
    @Qualifier("mySpecialBean")
    private BeanBase beanBase;
}

答案 3 :(得分:0)

使用distinct-values函数
独特物品

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

return (
 $unique-items
)