如何使用 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.xml
和 bar.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>
如何创建一个 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.xml
和 bar.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>