我是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
提前致谢。
答案 0 :(得分:0)
您的doc()函数都指向文件系统上的文件,这表明误解了如何使用eXist-db处理XML数据。但是,在使用eXist-db时,XML数据的所有操作都发生在数据库中。因此,您需要先将XML数据存储在数据库中,然后才能执行操作。然后,如果需要,您可以将数据序列化回文件系统。
要将数据存储到数据库中,请参阅Getting Data into eXist-db。
要合并数据,请参阅XQuery Update Extensions。
要将数据序列化回文件系统,请参阅file:serialize()的功能文档。