如何在Marklogic XQuery中复制/克隆节点

Fat*_*lsa 3 xquery marklogic marklogic-9

我正在编写需要返回XML节点的修改版本的代码,而不更改父文档中的原始节点.

如何复制/克隆节点,以便原始上下文不会连接到/受其影响?我不希望对此节点进行更改以更改父文档中的原始节点,只更改我的函数返回的副本.

我正在寻找的东西与cts非常相似:高亮在内部做:

返回节点副本,将与查询匹配的任何文本替换为指定的表达式.您可以使用此功能轻松突出显示查询中的任何文本.与fn:replace和其他与文字文本匹配的XQuery字符串函数不同,cts:highlight匹配与搜索匹配的每个术语,包括词干匹配或具有不同大小写的匹配.[marklogic docs> cts:highlight]

Mad*_*sen 6

创建节点的克隆/副本的最简单方法是使用计算文档节点构造函数:

document{ $doc }
Run Code Online (Sandbox Code Playgroud)

如果您正在克隆一个不是a的节点document-node(),并且不想要它document-node(),只需克隆一个原始node()节点,那么您可以通过XPath从新节点中选择该克隆节点document-node():

document{ $foo }/node()
Run Code Online (Sandbox Code Playgroud)