【发布时间】:2015-11-15 06:29:34
【问题描述】:
我想获得所有山脉的不同国家,但有时一座山会在多个国家/地区,如在这样的字符串中有多个国家代码所示:
<mountain id="mount-Kangchendzonga" country="NEP IND"></mountain>
我可以使用
获取与一个国家/地区关联的所有不同字符串let $mts := doc("mondial.xml")/mondial//mountain
let $countries := distinct-values(data($mts/@country))
但这并不完全正确,因为如果我有一个带有 country="NEP IND" 的山和另一个带有 country="NEP" 的山,这些将被识别为不同的。
let $countries := distinct-values(concat(' ', data($mts/@country)))
let $countries := distinct-values(tokenize(data($mts/@country), "\s+"))
有没有办法我可以先用空格分割一个国家的字符串,然后得到它们的不同值?我已经尝试在上面显示的连接和标记化数据上使用 distinct-values,但两者都会导致编译器出错。
【问题讨论】:
标签: xquery tokenize concat distinct-values