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
请告诉我哪里出错了?
答案 0 :(得分:11)
请试试这个 -
for $x in distinct-values(doc("sample")/Cities/Place/City/@n)
order by $x
return $x
我已经使用baseX 7.1检查了相同内容,并按照您的预期顺利运行:)
答案 1 :(得分:5)
您现在分别在每个值上调用distinct-values
。 distinct-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
)