dataweave - 如何丢弃 Dataweave 2 中的空 XML 标签
问题描述
我有以下 Dataweave 2 片段。输出是应用程序/xml。
ns0#Accounting_Worktag_Reference: if (payload01.PROJECT != null and payload01.PROJECT != ""){
ns0#ID @(ns0#"type": "Project_ID"): payload01.PROJECT} else null
当 Project_ID 为空时,我得到如下的空元素输出
<ns0:Accounting_Worktag_Reference/>
我想跳过这个空元素。我尝试了文档中提到的指令 skipNullOn="everywhere" 但仍然输出空元素。当 Project_ID 为空时,有没有其他方法可以跳过空元素。
解决方案
基本上,您需要使用此if
sintax,如本示例所示:https ://docs.mulesoft.com/mule-runtime/4.3/dataweave-cookbook-output-a-field-when-present
在您的情况下,它将如下所示:
%dw 2.0
output application/xml
ns ns0 http://some
---
{ns0#root:
(ns0#Accounting_Worktag_Reference: { ns0#ID @(ns0#"type": "Project_ID"): payload.PROJECT} )
if (payload.PROJECT != null and payload.PROJECT != "")
}
推荐阅读
- javascript - React Navigation 宽度不是 100% 适合 ios 模拟器上的屏幕
- php - 从多个表中获取利润数据的MYSQL问题
- angular - 如何使用 Angular 下载文件?
- react-native - 不变违规:不支持动态更改 numColumns。虽然我没有改变
- javascript - 如何解决数据表问题,当我从下拉列表中选择活动选项时显示两种状态?
- javascript - 我正在尝试获取一个动态表单,之后需要使用 PHP 将其数据插入数据库
- linux - Candump - candumpanalyzer:找不到命令
- python - 错误:找不到满足要求时间的版本(来自版本:无)
- apache-spark - YARN 在 launch_container.sh 中如何执行 PYSPARK 环境设置
- firebase - Flutter Firebase google登录发布签名密钥问题