使用satisfies包含XQuery返回课程计数

时间:2018-06-17 19:43:03

标签: xpath xquery contains xquery-3.0

我一直在努力将this XML file中包含“交叉列表”的课程计数作为其描述。我遇到的问题是因为我正在使用它,它迭代并给我“1 1”而不是“2”。当我尝试使用let时,我得到13,这意味着即使我指向返回计数($ c [“交叉列表”],它也无条件计数。我做错了什么以及如何解决?提前感谢

for $c in doc("courses.xml")//Department/Course
where some $desc in $c/Description
satisfies contains($desc, "Cross-listed")
return count($c)

1 个答案:

答案 0 :(得分:2)

  

我遇到的问题是因为我正在使用

你是对的。您不需要单独处理项目以计算它们。

你做得太难了。你想要

count(doc("courses.xml")//Department/Course[Description[contains(., "Cross-listed"]])

这里的关键是:你想要一个计数,所以调用count()函数,并给它一个参数,选择你想要包含在计数中的一组事物。