我可以使用fileize:serialize函数将existsdb XML文件保存到我的文件系统中的路径吗?

时间:2014-01-09 12:52:49

标签: xml exist-db

我想在我的文件系统中保存XML,我发现文件:serialize函数能够做到这一点。但是,我从文档(http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/file#serialize.3)中不清楚如何使用此函数。

有人能为我提供一个例子吗?

1 个答案:

答案 0 :(得分:2)

此脚本会将存储在eXist-db集合mydocument.xml中的名为/db/apps/myapp/data的文档保存到文件系统C:\Users\Joe\workspace中(典型的Mac目录作为评论你要启用;注意Windows和Mac / Linux之间的斜杠差异)。我建议使用目标目录的绝对路径,如示例所示。您可以修改http://exist-db.org/exist/apps/doc/xquery.xml#serialization中记录的序列化参数(file:serialize()函数将采用“XQuery 1.0中的序列化”下列出的参数。)

xquery version "3.0";

let $source-doc := doc('/db/apps/myapp/data/mydocument.xml')
let $filename := 'mydocument.xml'
let $target-directory := 
    (: Mac :)
    (: '/Users/Joe/workspace/' :)
    (: Windows :)
    'C:\Users\Joe\workspace\'
let $target-path:= 
    (: Construct the full filesystem path for the file :)
    concat($target-directory, $filename)
return 
    file:serialize($source-doc, $target-path, ("omit-xml-declaration=yes", "indent=yes"))