如何使用 eXist-db 将 "stitch together" 结果放入单个 XML 文档中?

How to "stitch together" results into a single XML document with eXist-db?

如何创建一个 notes 元素的“单个”结果作为根节点,具有 note 元素的多个子节点?

这是 eXide 中的查询:

xquery version "3.0";
    
for $note in collection('/db/tmp')/note
return <notes>{$note}</notes>

其中输出为:

nicholas@mordor:~/flwor$ 
nicholas@mordor:~/flwor$ lynx http://localhost:8080/exist/rest/db/scripts/notes.xq --dump
<notes>
    <note>
bar
</note>
</notes>
<notes>
    <note>
foo
</note>
</notes>nicholas@mordor:~/flwor$ 
nicholas@mordor:~/flwor$ 

如何获取单个文档,其中包含单个根元素 notes 而 Firefox 不会 在其上?

集合中有两个文件,foo.xmlbar.xml

XML 必须只有一个根元素。 另外,在不知道数据结构的情况下,我会假设您想要获取所有 notes 而不管它们嵌套的深度。要实现这一点,请使用 collection($col)//note

xquery version "3.1";
    
<notes>
{
  for $note in collection('/db/tmp')/note
  return $note
}
</notes>

xquery version "3.1";
    
<documents>
{
  for $doc in collection('/db/tmp')/document()
  return <notes>{$doc/note}</notes>
}
</documents>