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')]]
好的,我有这部电影 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')]]