{
for $movie in distinct-values(doc("movies.xml")/movies/movie)
where count(doc("movies.xml")/movies/movie[title=$movie/title]) = count(distinct-values(doc("movies.xml")/movies/movie/source))
return
<title> {$movie/title} </title>
}在这个特定的查询中,我试图:在"movies“文档中查找从所有来源提供的电影标题。我在where子句的行上遇到错误。错误是:'/‘的第一个操作数所需的项类型是node();提供的值具有项类型xs:anyAtomicType
发布于 2012-11-01 03:08:10
问题是distinct-values()返回不同的字符串值,所以您尝试对字符串使用xpath表达式。$movie/title的计算结果为(xs:string)/title,这是无效的,并引发异常。
但是根据我对你的目标的理解,我认为这个查询不会返回你想要的结果。尝试这个解决方案来返回所有来源提供的电影标题:
let $sources-distinct-all := count(distinct-values(doc("movies.xml")/movies/movie/source))
for $title in distinct-values(doc("movies.xml")/movies/movie/title)
let $sources-distinct-movie := count(distinct-values(doc("movies.xml")/movies/movie[title eq $title]/source))
where ($sources-distinct-all eq $sources-distinct-movie)
return $titlehttps://stackoverflow.com/questions/13164044
复制相似问题