mule - 检查 XML 元素是否具有 xsi:nil="true"
问题描述
我有一个元素<ABC xsi:nil="true">
。我想在 dataweave 2.0 中编写一个条件来检查这个 xsi:nil 的值,如果它等于“true”,我想像"ABC": null
在 JSON 中一样转换,我在脚本中使用 skipNullOn="everywhere"。我尝试使用payload.ABC.@nil == "true"
,但它正在给null
解决方案
这可能会有所帮助。
%dw 2.0
output application/json skipNullOn="everywhere"
fun replaceElementAndAttribute(value:Any, name: String, newValue: Any) = do {
value match {
case obj is Object -> obj mapObject ((value, key, index) ->
if(key.@nil ~= "true")
(key): "null"
else
(key) @((replaceElementAndAttribute(key.@, name, newValue))): replaceElementAndAttribute(value, name, newValue)
)
else -> value
}
}
---
replaceElementAndAttribute(payload,"", "")
这类似于这里提到的内容。
然而,使用这个递归函数,它会将值输出为“null”字符串。
推荐阅读
- python - Python:加载 JSON 时跟踪引号
- databricks - Databricks 中的 CLONE TABLE 是否会在克隆前删除目标表?
- wordpress - 为 Elementor Lottie 小部件设置 SVG 属性
- angularjs - 以角度同时显示三个随机图像
- javascript - 如何修复“nodemon 应用程序崩溃”错误消息?
- python - 如何解决 DataFlow 中的 `('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))`?
- ubuntu - 如何检测菊花链网络中的路由器切换?
- python - 使用 sklearn 进行多项式回归绘图
- installation - 如何在 CentOS 7 上安装 static-mpich?
- python - 如何在树莓派上加速 pygame?