Marklogic
通过使用需要这样的东西xquery
。获取某个位置中存在的文档,如果不存在,则使用创建文档xdmp:document-insert()
,然后使用检索文档fn:doc()
。
在第一次运行中,文档不存在。因此它会创建文档但不获取任何内容。在第二次运行中,检索在第一次运行中创建的文档。但是,我想同时做这两个。
我知道我在这里遗漏了一些简单的东西。是单笔交易吗?这两个语句都在不同的行中,因此不确定它是否是单个事务案例。
declare function lk:createXmlIfNotPresent(){
let $xml_dir := "app/test"
let $xml_full_path := "app/test/test.xml"
let $dir_uri := cts:uri-match($xml_dir)
let $dir_creation :=
if(fn:empty($xml_dir)) then (
xdmp:directory-create($xml_dir)
)else()
let $exists := fn:doc-available($xml_full_path)
let $xml_creation :=
if($exists eq fn:false()) then (
xdmp:document-insert($xml_full_path,<root></root>,xdmp:default- permissions())
)else()
return fn:doc($xml_full_path)
};