1

我是 eXist-db 的新手。我想要做的是将大量数据以 XML 格式存储到本机 XML 数据库中以进行快速处理(搜索/更新/等)。但不幸的是,提供的文档没有清楚地解释如何将数据保存/修改到持久数据库(或返回 XML 文件)。

下面大致是我想在 eXide 中做的事情。我不知道该怎么做的行在问题 Q1、Q2 和 Q3 中注释:

xquery version "3.0";

let $data := doc('file:///c:/eXist/database.xml')

let $newdata := doc('file:///c:/import/newdata.xml')

(: Q1. How to do merging of data like below? :)
update insert $newdata into $data

(: Q2. How to save the changes back to database.xml? :)
doc('file:///c:/eXist/database.xml') := $data

let $result := <result>
{
    for $t in $data/book/title
    where $t/../publisher = 'XYZ Company'
    return $t
}
</result>

(: Q3 How to save query result to a new file? :)
doc('file:///c:/export/XYZ Company Report.xml') := $result

提前致谢。

4

1 回答 1

0

您的 doc() 函数都指向文件系统上的文件,这表明人们对如何使用 eXist-db 处理 XML 数据存在误解。但是,在使用 eXist-db 时,对 XML 数据的所有操作都发生在数据库中。因此,您需要先将 XML 数据存储在数据库中,然后才能执行操作。然后,如果需要,您可以将数据序列化回文件系统。

要将数据存储到数据库中,请参阅将数据导入 eXist-db

要合并数据,请参阅XQuery 更新扩展

要将数据序列化回文件系统,请参阅file:serialize()的函数文档。

于 2013-09-17T21:15:52.303 回答