在eXist-db中保存数据

时间:2013-09-17 00:03:46

标签: exist-db

我是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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

要将数据存储到数据库中,请参阅Getting Data into eXist-db

要合并数据,请参阅XQuery Update Extensions

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