小编The*_*3n1的帖子

Xquery - 如何在量词表达式中匹配两个序列

像许多人一样,我正在处理 XML 上的 Mondial 数据库。如果 XQuery 语法没有尽最大努力进行破坏,那将是小菜一碟。

let $inland := //province/@id
where every $sea in //sea satisfies
$sea/located/@province != $inland
return $inland
Run Code Online (Sandbox Code Playgroud)

我在上面要做的是找到所有“内陆”省份,即旁边没有海的省份。然而,这是行不通的,因为 $sea/located/province 是一个大字符串,每个省份都与它接壤。

所以我试着修改成。

let $inland := //province/@id
where every $sea in //sea satisfies
not(contains($sea/located/@province, $inland))
return $inland
Run Code Online (Sandbox Code Playgroud)

我希望它只找到属于海洋接壤省份一部分的省份。简单明了。

错误信息:

Stopped at C:/Users/saffekaffe/Desktop/mondial/xml/country_without_island.xml, 2/1:
[XPTY0004] Item expected, sequence found: (attribute id {"prov-Greece-2"},....
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

//sea/located/province@示例

province="prov-France-5 prov-France-20 prov-France-89 prov-France-99" 
Run Code Online (Sandbox Code Playgroud)

//province/@id 示例

id="prov-Greece-2"
Run Code Online (Sandbox Code Playgroud)

xquery contains

2
推荐指数
1
解决办法
680
查看次数

标签 统计

contains ×1

xquery ×1