小编Sha*_*ini的帖子

如何有效地替换多个XML节点?

我试图在单个文档中替换大约500个节点,我在我的数据库中有5000+文档.

我正在使用的代码与之前询问的这个问题有关 - 链接

有什么建议让我的代码有效吗?

xquery marklogic

2
推荐指数
1
解决办法
113
查看次数

如何比较MarkLogic中的日期?

我在$ doc变量中使用了以下XML

 let $doc := <root>
              <date>12/31/2016</date>
             </root>
Run Code Online (Sandbox Code Playgroud)

我想把这个日期与今天的日期进行比较.它应该归还给我,但它却让我失意.

我使用以下代码 -

let $doc := <root>
              <date>12/31/2016</date>
             </root>


let $date := $doc/date/text()
let $today :=fn:format-date(fn:current-date(),"[M01]/[D01]/[Y0001]")
return $date le $today
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

xquery marklogic

1
推荐指数
1
解决办法
417
查看次数

如何更新不同数据库中的节点或如何更新外部节点?- XDMP-UPEXTNODES

我正在尝试更新与当前数据库不同的数据库中的文档。但它给了我以下错误-

XDMP-UPEXTNODES: xdmp:node-replace(fn:doc("/C:/Users/Downloads/abc.csv-0-2")/*:envelope/*:root/*:Status, <Status>1000</Status>) -- Cannot update external nodes
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码-

let $temp := 
  for $i in $result
  let $error := $i/*:envelope/*:ErrorMessage
  let $status := $i/*:envelope/*:Status
  return 
    if(fn:exists($i) eq fn:true()) then (
      xdmp:invoke-function(
        function() { 
          xdmp:node-replace($status,<Status>1000</Status>),
          xdmp:node-replace($error,<ErrorMessage>Change Error in other Database-2</ErrorMessage>)  
        },
        <options xmlns="xdmp:eval">
          <database>{xdmp:database("DATABASE-2")}</database>
        </options>))
    else ()
Run Code Online (Sandbox Code Playgroud)

我想更新Database-2的错误和状态节点。

$result 是我从Database-2获取的文档。

我从Database-1运行此代码

有什么建议 ?

xquery marklogic

1
推荐指数
1
解决办法
330
查看次数

如何从MarkLogic中的文档URI获取文档目录?

我有一个包含不同目录的URI列表.它是从MarkLogic中的URI获取所有不同目录的方法吗?

xdmp:directory 用于不同的目的.

Example- 
let $uri := "/test/abc/somepath/abc.xml"
Output should be- "/test/abc/somepath/"
Run Code Online (Sandbox Code Playgroud)

有什么建议 ??

xquery marklogic

1
推荐指数
1
解决办法
50
查看次数

如何使用mem:node-replace将内容提交到数据库?

我正在使用我正在使用的代码mem:node-replace().代码如下─

let $a := 
  for $i in $res
  let $uri := fn:base-uri($i)
  let $doc := fn:doc($uri)
  return if(fn:exists($doc) eq fn:true()) 
    then (
      (
        mem:node-replace($doc//*:NODE1,<NODE1>{doc($id)//*:NODE1}</NODE1>),
        mem:node-replace($doc//*:NODE2,<NODE2>{$curr_date}</NODE2>)
      ) 
    ) 
    else () 
return $a
Run Code Online (Sandbox Code Playgroud)

我能够看到值在LOG中被替换,但它没有反映到数据库中.我应该如何在我的数据库中提交/保存此节点替换?

有什么建议 ?

xquery marklogic

0
推荐指数
1
解决办法
60
查看次数

标签 统计

marklogic ×5

xquery ×5