使用XQuery合并具有相同元素的节点

问题描述 投票:-2回答:1

我想知道是否有人可以将我非常生锈的xquery指向正确的方向。

我有一个简单的xml文件:

<factoids>
  <set>
    <head>smith, joe</head>
    <factoid> <!-- contains set of elements --> </factoid>
    <factoid> <!-- contains set of elements --> </factoid>
  </set>
  <set>
    <head>miller, jim</head>
    <factoid> <!-- contains set of elements --> </factoid>
    <factoid> <!-- contains set of elements --> </factoid>
  </set>
  <set>
    <head>smith, joe</head>
    <factoid> <!-- contains set of elements --> </factoid>
    <factoid> <!-- contains set of elements --> </factoid>
  </set>
  ...
</factoids>

我只想合并所有在头部元素中具有相同内容的事实类集。

我确信我已经在遥远的过去通过一些简单的xquery做到了这一点。

任何帮助表示赞赏! :)

xquery
1个回答
0
投票

这是一个教科书分组问题:

<factoids>
{
    for $set in factoids/set
    group by $head := $set/head
    return
        <set>
            <head>{$head}</head>
            { $set/factoid }
        </set>
}
</factoids>

https://xqueryfiddle.liberty-development.net/6qVSgeV

© www.soinside.com 2019 - 2024. All rights reserved.