xQuery:检查元素中的字符串但忽略同一元素中具有不同值的多个元素

xQuery: Check for string in element but ignore multiple elements within the same element but with different values

好的,我有这部电影 xml 文件,其中包含两部电影。我想获取所有包含 'Action' 字符串的电影。

<movie id="19995">
    <genre genre_id="28">Action</genre>
    <genre genre_id="12">Adventure</genre>
    <genre genre_id="14">Fantasy</genre>
    <vote_average>7.2</vote_average>
</movie>

<movie id="19995">
    <genre genre_id="14">Fantasy</genre>
    <genre genre_id="878">Science Fiction</genre>
    <vote_average>7.2</vote_average>
</movie>

这是我的 atm 密码。

let $xml_file := doc("tmdb_5000_movies")
let $action_movies := $xml_file//movie[contains(genre/text(), 'Action')]

但我收到以下错误消息。

[XPTY0004] Item expected, sequence found: (text {"Action"}, text {"Adventure"}, ......

contains()确实拿了一件;但由于 xml 中的每部电影都有两个或更多类型,contains 遇到两个或三个项目的序列,导致出现错误消息。

这样试试:

let $action_movies := $xml_file//movie

return  $action_movies[genre[contains(text(),'Action')]]