XQuery 1.0删除重复的节点值

XQuery 1.0删除重复的节点值,xquery,Xquery,我尝试了各种方法从输入中删除重复的节点 我当前使用的表达式如下所示: <Signers>{ let $signers := fn:distinct-values($temp.load/*/Signers) for $signer in $signers return <Signer>{ $signer }</Signer> }</Signers> { le

我尝试了各种方法从输入中删除重复的节点

我当前使用的表达式如下所示:

    <Signers>{
            let $signers := fn:distinct-values($temp.load/*/Signers)
            for $signer in $signers
  return
    <Signer>{
        $signer
    }</Signer>
}</Signers>
{
let$signers:=fn:distinct值($temp.load/*/signers)
对于$signers中的$signer
返回
{
$signer
}
}
我甚至使用了$signer/id、$signer/name等,但这并没有生成所需的输出

输入


a1546000000xtaqAAA
jrogers@burlington.com
杰克罗杰斯
A1546000000xWnsay
myaddress96@gmail.com
沃尔特·怀特
A1546000000xWnsay
myaddress@gmail.com
沃尔特·怀特
电流输出

    <Signers>
       <Signer>a1546000000xtaqAAAjrogers@burlington.comJack Rogers</Signer>
       <Signer>a1546000000xwNSAAYrichbateman96@gmail.comWalter White</Signer>
    </Signers>

a1546000000xtaqAAAjrogers@burlington.comJack罗杰斯
a1546000000xwNSAAYrichbateman96@gmail.comWalter白色
期望输出

         <Signers>
           <id>a1546000000xtaqAAA</id>
           <email>jrogers@burlington.com</email>
           <name>Jack Rogers</name>
        </Signers>
        <Signers>
           <id>a1546000000xwNSAAY</id>
           <email>myaddress96@gmail.com</email>
           <name>Walter White</name>
        </Signers>

a1546000000xtaqAAA
jrogers@burlington.com
杰克罗杰斯
A1546000000xWnsay
myaddress96@gmail.com
沃尔特·怀特

这必须很简单,我知道我忽略了一些东西。谢谢大家!

您可以按以下操作按不同的
id
进行选择:

<Signers>
{
    /*/Signers[not(id=preceding-sibling::Signers/id)]
}
</Signers>
<Signers>
{
    /*/Signers[not(id=preceding-sibling::Signers/id)]
}
</Signers>
<Signers>
{
    let $ids := fn:distinct-values(/*/Signers/id)
    for $id in $ids
    return
        /*/Signers[id=$id][1]
}
</Signers>