我想在我的文件系统中保存XML,我发现文件:serialize函数能够做到这一点。但是,我从文档(http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/file#serialize.3)中不清楚如何使用此函数。
有人能为我提供一个例子吗?
答案 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"))