在XQuery中使用计数进行分组

时间:2014-03-23 01:19:57

标签: xquery

我附上了一个名为hamlet.xml的xml文档(http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml)。

我希望使用xquery获得以下输出:

   <speaker name="BERNARDO" lines="38"/>
    <speaker name="FRANCISCO" lines="10"/>
    <speaker name="HORATIO" lines="291"/>
    ...and so on for all the distinct speakers.

我已经能够使用

获得演讲者的名字

========================

for $s in distinct-values(doc("hamlet")//SPEAKER
return <speaker name="$s}" />

=========================

但我不知道如何拉线。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

足够简单:

for $speaker in
  distinct-values(//SPEAKER/text())
return
  <speaker
     name="{$speaker}"
     count="{count(//LINE[../SPEAKER=$speaker])}"/>