xquery - 如何替换转换中的 $content 值?
问题描述
我需要在我的转换中替换 $content 值。
xquery version "1.0-ml";
module namespace test =
"http://marklogic.com/rest-api/transform/security-load";
declare function test:transform(
$context as map:map,
$params as map:map,
$content as document-node()
) as document-node()
{
let $jsonObj := xdmp:from-json($content)
let $inputval := "fname,lname"
let $entity :="holidayDate"
let $domain :="referenceData"
let $uri := xdmp:apply(
xdmp:function(xs:QName("createUri"), "/wdsUtils.sjs"),
$jsonObj,
$inputval)
let $root := xdmp:apply(
xdmp:function(xs:QName("addMetaData"), "/wdsUtils.sjs"),
$entity,
$domain,
$jsonObj)
let $output := $root
return map:put($context,"uri",$uri),
document { $output }
};
我需要用 $root 值更改 $content 值并返回它。我试图直接返回 $root 但它不起作用,我收到了无效文档错误。
解决方案
问题在于它$output
的范围是 FLWOR 语句,但您在该语句之外引用它。请参阅下面的括号return
。
xquery version "1.0-ml";
module namespace test = "http://marklogic.com/rest-api/transform/security-load";
declare function test:transform(
$context as map:map,
$params as map:map,
$content as document-node()
) as document-node()
{
let $jsonObj := xdmp:from-json($content)
let $inputval := "fname,lname"
let $entity :="holidayDate"
let $domain :="referenceData"
let $uri :=
xdmp:apply(
xdmp:function(xs:QName("createUri"), "/wdsUtils.sjs"),
$jsonObj,
$inputval
)
let $root :=
xdmp:apply(
xdmp:function(xs:QName("addMetaData"), "/wdsUtils.sjs"),
$entity,
$domain,
$jsonObj
)
let $output := $root
return (
map:put($context,"uri",$uri),
document { $output }
)
};
推荐阅读
- python - 如何将一列拆分为逗号分隔的字符串?
- javascript - JS 迷你函数
- jquery - 如何从 MEDIA_ROOT 获取路径以将其保存为模型中的字符串?
- c - 从函数返回后,条件跳转或移动取决于未初始化的值
- python-3.x - 如何使用“ax”增加绘图的大小并确保“y”轴刻度是实际值而不是“le11”
- javascript - scrollspy 根本不突出导航链接
- apache-nifi - 使用 RetryFlowFile 处理器在 NiFi 中实现指数回退
- android - 更新到最新的 kotlin 版本后出现问题
- c# - EF Core 按日期过滤数据
- apache-kafka - Flink SQL,如何通过eventtime在kafka数据流中获取第一条记录和最后一条记录并存储到数据库(如GP,MySQL)?