XQuery - 检查一组是否包含另一组(获得零结果)

斯凯瑟龙

所以我使用这个 XML 数据库:https : //www.dbis.informatik.uni-goettingen.de/Mondial/mondial.xml这是我的问题描述:

“哪些国家是名称以‘国际’开头且总部设在欧洲的所有组织的成员?”

查询代码:

let $doc := doc("mondial.xml")/mondial
let $countries := (
  for $c in $doc/country
  let $memShipsSet := $c/tokenize(data(@memberships), '\s')
  let $orgSet := $inter-orgs-eu/data(@id)
  where empty(distinct-values($orgSet[not(.=$memShipsSet)]))
  return <country code="{$c/data(@car_code)}">{$c/data(name)}</country>
)
return $countries

$inter-orgs-eu是名称中带有“国际”一词且总部位于欧洲的所有组织 [元素] 的序列/列表)

distinct-values($orgSet[not(.=$memShipsSet)])函数返回$orgSet未出现的值$memShipsSet(参考:http : //www.xqueryfunctions.com/xq/functx_value-except.html

但是,当我运行此代码时,它只返回零结果,我无法弄清楚我做错了什么。这是一个逻辑错误还是其他什么(我是 Xquery 的新手,所以很可能是我遗漏了一些明显的东西)?

任何帮助表示赞赏。

谢谢!

编辑:完整代码:

let $doc := doc("mondial.xml")/mondial

let $inter-orgs := (
  for $o in $doc/organization
  let $name := xs:string($o/data(name))
  where contains($name,xs:string("International"))
  return $o
)

let $inter-orgs-eu := (
  for $o in $inter-orgs
  let $hq := $o/data(@headq)
  let $city := $doc/country/id($hq)
  let $cCode := $city/data(@country)
  let $country := $doc/country[data(@car_code)=$cCode]
  where $country/encompassed/data(@continent) = 'europe'
  return $o
)

let $countries := (
  for $c in $doc/country
  let $memShipsSet := $c/tokenize(data(@memberships), '\s')
  let $orgSet := $inter-orgs-eu/data(@id)
  where empty(distinct-values($orgSet[not(.=$memShipsSet)]))
  return <country code="{$c/data(@car_code)}">{$c/data(name)}</country>
)
return $countries
斯凯瑟龙

事实证明,确实有 0 个国家/地区是所有这些组织的成员。所以我的代码实际上工作得很好。感谢@MartinHonnen 生成了一个包含所有国家和组织($inter-orgs-eu)的表格,他们是 xqueryfiddle.liberty-development.net/jyyiVhg 的成员。

我的代码中有一个小问题,但我现在已经解决了。$inter-orgs 返回所有包含“International”一词的组织,但根据问题描述,它应该只返回以“International”一词开头的组织。我通过starts-with在我的where子句中$inter-orgs使用contains函数而不是使用函数修复它虽然(当我返回时$countries对我的最终结果没有任何影响

最终代码:

let $doc := doc("mondial.xml")/mondial

let $inter-orgs := (
  for $o in $doc/organization
  let $name := xs:string($o/data(name))
  where starts-with($name,xs:string("International"))
  return $o
)

let $inter-orgs-eu := (
  for $o in $inter-orgs
  let $hq := $o/data(@headq)
  let $city := $doc/country/id($hq)
  let $cCode := $city/data(@country)
  let $country := $doc/country[data(@car_code)=$cCode]
  where $country/encompassed/data(@continent) = 'europe'
  return $o
)

let $countries := (
  for $c in $doc/country
  let $memShipsSet := $c/tokenize(data(@memberships), '\s')
  let $orgSet := $inter-orgs-eu/data(@id)
  let $orgsNotInMemSet := distinct-values($orgSet[not(.=$memShipsSet)])
  where empty($orgsNotInMemSet)
  return <country code="{$c/data(@car_code)}">{$c/data(name)}</country>
)

return <root>
 {$countries}
</root>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mysql-检查一组元素是否包含在另一组中

来自分类Dev

使用any()和all()检查列表是否包含一组值或另一组值

来自分类Dev

Excel:检查一组行是否等于另一组

来自分类Dev

Xquery如何从一组xml记录内的一组xml节点中提取专有术语?

来自分类Dev

Xquery如何从一组xml记录内的一组xml节点中提取专有术语?

来自分类Dev

SQL Server XQuery错误:number()需要一个节点或一组节点

来自分类Dev

使用适合另一组的模型对一组的寓言预测结果

来自分类Dev

Xquery:计算一组记录中每个记录中一个术语出现的次数

来自分类Dev

是否可以在 +-5% 范围内将一组数据与另一组数据进行比较

来自分类Dev

SQL - 显示一组值从一组到另一组的变化(取决于时间)

来自分类Dev

从一组裸git存储库迁移到另一组

来自分类Dev

在一组中查找不在另一组中的值对

来自分类Dev

R-如何用另一组值替换一组值

来自分类Dev

如何用另一组替换一组颜色“阴影”

来自分类Dev

Pandas Dataframe Groupby确定一组与另一组中的值

来自分类Dev

从一组按钮转移到另一组按钮

来自分类Dev

使用给定度量将一组元素匹配到另一组元素

来自分类Dev

根据另一组列对一组列进行排序

来自分类Dev

如何在一组而不是另一组中找到产品

来自分类Dev

rspec从一组泄漏到另一组

来自分类Dev

查找与另一组最接近的一组点

来自分类Dev

如何在另一组线之后追加一组线?

来自分类Dev

使用另一组线条裁剪一组线条

来自分类Dev

将一组工作链接到另一组工作

来自分类Dev

检查列表中是否包含一组值

来自分类Dev

检查变量是否在一组TLD中包含域名

来自分类Dev

SQL 检查行是否包含一组值

来自分类Dev

如何基于是否存在另一组列创建新列

来自分类Dev

XQuery联接结果

Related 相关文章

  1. 1

    mysql-检查一组元素是否包含在另一组中

  2. 2

    使用any()和all()检查列表是否包含一组值或另一组值

  3. 3

    Excel:检查一组行是否等于另一组

  4. 4

    Xquery如何从一组xml记录内的一组xml节点中提取专有术语?

  5. 5

    Xquery如何从一组xml记录内的一组xml节点中提取专有术语?

  6. 6

    SQL Server XQuery错误:number()需要一个节点或一组节点

  7. 7

    使用适合另一组的模型对一组的寓言预测结果

  8. 8

    Xquery:计算一组记录中每个记录中一个术语出现的次数

  9. 9

    是否可以在 +-5% 范围内将一组数据与另一组数据进行比较

  10. 10

    SQL - 显示一组值从一组到另一组的变化(取决于时间)

  11. 11

    从一组裸git存储库迁移到另一组

  12. 12

    在一组中查找不在另一组中的值对

  13. 13

    R-如何用另一组值替换一组值

  14. 14

    如何用另一组替换一组颜色“阴影”

  15. 15

    Pandas Dataframe Groupby确定一组与另一组中的值

  16. 16

    从一组按钮转移到另一组按钮

  17. 17

    使用给定度量将一组元素匹配到另一组元素

  18. 18

    根据另一组列对一组列进行排序

  19. 19

    如何在一组而不是另一组中找到产品

  20. 20

    rspec从一组泄漏到另一组

  21. 21

    查找与另一组最接近的一组点

  22. 22

    如何在另一组线之后追加一组线?

  23. 23

    使用另一组线条裁剪一组线条

  24. 24

    将一组工作链接到另一组工作

  25. 25

    检查列表中是否包含一组值

  26. 26

    检查变量是否在一组TLD中包含域名

  27. 27

    SQL 检查行是否包含一组值

  28. 28

    如何基于是否存在另一组列创建新列

  29. 29

    XQuery联接结果

热门标签

归档