XML:返回满足给定条件的序列元素

XML:返回满足给定条件的序列元素,xml,xquery,Xml,Xquery,我有一个包含电影信息的XML文件。我希望我的表达式在XML中返回导演,这些导演已经导演了一部以上的电影 我现在得到的是: for $director in //director where count($director) > 1 return $director 这不会产生任何效果。我想做的是: 对于XML中的每个控制器: 如果在//director中不止一次指定了董事的姓名,则返回董事的姓名 你将如何解决这个问题 编辑:XML的示例: <result> <

我有一个包含电影信息的XML文件。我希望我的表达式在XML中返回导演,这些导演已经导演了一部以上的电影

我现在得到的是:

for $director in //director
where count($director) > 1
return $director 
这不会产生任何效果。我想做的是:

对于XML中的每个控制器: 如果在//director中不止一次指定了董事的姓名,则返回董事的姓名

你将如何解决这个问题

编辑:XML的示例:

<result>
    <videos>
        <video id="id1235AA0">
            <title>The Fugitive</title>
            <genre>action</genre>
            <rating>PG-13</rating>
            <summary>Tommy Lee Jones and Harrison Ford are the hunter and the hunted in this fast-paced story of a falsely convicted man who escapes to find his wife's true killer.</summary>
            <details>Harrison Ford and Tommy Lee Jones race through the breathless manhunt movie based on the classic TV series. Ford is prison escapee Dr. Richard Kimble, a Chicago surgeon falsely convicted of killing his wife and determined to prove his innocence by leading his pursuers to the one-armed man who actually commited the crime.</details>
            <year>1997</year>
            <director>Andrew Davis</director>
            <studio>Warner</studio>
            <user_rating>4</user_rating>
            <runtime>110</runtime>
            <actorRef>00000003</actorRef>
            <actorRef>00000006</actorRef>
            <vhs>13.99</vhs>
            <vhs_stock>206</vhs_stock>
            <dvd>14.99</dvd>
            <dvd_stock>125</dvd_stock>
            <beta>1.03</beta>
            <beta_stock>12</beta_stock>
            <LaserDisk>12.00</LaserDisk>
            <LaserDisk_stock>10</LaserDisk_stock>
        </video>
    </videos>
</result>

逃犯
行动
PG-13
汤米·李·琼斯(Tommy Lee Jones)和哈里森·福特(Harrison Ford)是这个快节奏的故事中的猎手和被猎手,故事讲述了一个被判有罪的男人逃走寻找他妻子的真正凶手的故事。
哈里森·福特和汤米·李·琼斯在根据经典电视剧改编的惊险电影《追捕》中展开角逐。福特是一名越狱者理查德·金布尔博士,芝加哥一名外科医生,因杀害妻子而被判有罪,他决心通过带领追捕者找到一名实际犯罪的独臂男子来证明自己的清白。
1997
安德鲁·戴维斯
华纳
4.
110
00000003
00000006
13.99
206
14.99
125
1.03
12
12
10

您根本没有执行聚合。如果您的XQuery引擎支持XQuery 3.0,请使用
分组依据

中的$director//director
其中计数($director)>1
由$director分组
返回$director

否则,循环所有
不同的值(//director)
,找到每个名称的所有匹配的director标记,并对它们进行计数。

如果要列出拥有多部电影的导演,请确保提供一个实际适用于您的问题的示例:我建议至少有三部电影,两个和同一个导演,一个和另一个导演,所以有两个导演匹配,也有不匹配的。同时,你可以省略大部分其他不相关的标签,并且不要发布这些标签。