按公共条件属性列出属性

时间:2013-11-22 02:08:35

标签: xml loops xquery

我有一个处理Xquery的问题。 我的目标是将来自循环的所有元素显示到不同的元素中,这些元素具有相同的属性但对另一个属性不同。已经48小时我坚持了,我不能前进! :(

这里有一个我有的表类型的例子:

<people>
<crazy id="123" firstname="John" lastname="Fool" score="20">
<crazy id="123" firstname="John" lastname="Fool" score="80">
<crazy id="123" firstname="John" lastname="Fool" score="77">
<crazy id="123" firstname="John" lastname="Fool" score="49">
<crazy id="789" firstname="Lea" lastname="Dumb" score="54">
<crazy id="789" firstname="Lea" lastname="Dumb" score="89">
<crazy id="789" firstname="Lea" lastname="Dumb" score="99">
<crazy id="789" firstname="Lea" lastname="Dumb" score="4">
<crazy id="247" firstname="Paul" lastname="Duck" score="16">
<crazy id="247" firstname="Paul" lastname="Duck" score="91">
<crazy id="247" firstname="Paul" lastname="Duck" score="22">
<crazy id="247" firstname="Paul" lastname="Duck" score="31">
</people>

我想得到类似的东西:

<person>247</person>

(这是两个得分低于“50”的人的“id”列表。

我有类似的东西

 let $calc:= (

  for $boucle in people where ($boucle/@score>="50")
  return $boucle

)

现在我想列出小于2“得分”大于50的人数。 但我不知道该怎么办:( :(

1 个答案:

答案 0 :(得分:0)

我不是100%确定你想要什么,但我认为就是这样:

for $id in distinct-values(//crazy/@id)
  where count(//crazy[@id = $id and number(@score) gt  50]) lt 2
return <person>{$id}</person>