我知道有人问过类似的问题,但其中给出的解决方案并没有解决我的问题。而且由于我的声誉较低,我无法在同一个问题页面上发表评论。
我的 XQuery 代码:
<results>
{
for $p in
(
for $o in doc("mondial-3.0.xml") /mondial/organization
where fn:count($o/members)
order by fn:count($o/members) descending
let $m := $o/members
return <organization>
<name> {$o/@name/string()} </name>
<abbreviation> {$o/@abbrev/string()} </abbreviation>
<num_members> {fn:count($o/members)} </num_members>
<country> {doc("mondial-3.0.xml")/mondial/country[@id=$m/@country]/@name/string()} </country>
</organization>
)[position() < 3]
return $p
}
</results>
我使用 Zorba 作为 XQuery 引擎来获取输出。我得到的输出是正确的,只是我的输出结构不是我想要的。
目前所有国家都在同一条线上打印。
<country> Angola Argentina Bolivia.... </country>
但我希望每个新国家都在一条新的独立线上。
<country> Angola </country>
<country> Argentina</country>
<country> Bolivia </country>
XML 文件: