如何解决在dwl-Transform消息中使用xpath3
我想检查XML有效负载中是否存在节点。为此,我想在mule4的“转换消息”中使用xpath3()。
输入:
<XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ABC xsi:nil="true"/>
<DEF/>
</XML>
数据织法代码:
%dw2.0
output application/json skipNullOn="everywhere"
---
if(xpath3('//:ABC',payload.XML,'BOOLEAN')
"abc": "yes
else
"abc": "no"
预期输出( json):
{
"abc": "yes"
}
请帮助我。
解决方法
为什么使用xpath?使用以下dataweave表达式可以达到相同的结果:
- 检查元素是否存在(是否为零)
%dw 2.0
output application/json skipNullOn="everywhere"
---
{
"abc": if (payload.XML.ABC?) "yes" else "no"
}
- 检查是否存在element而不是nil(当ABC具有值时,必须将nil设置为false或将其删除):
%dw 2.0
output application/json skipNullOn="everywhere"
---
{
"abc": if (!isEmpty(payload.XML.ABC)) "yes" else "no"
}
使用这些表达式的输出示例:
,DataWeave 2.x(在Mule 4.x中)没有xpath3()函数。如果出于某种原因要在DataWeave中使用XPATH,则必须自行开发该功能,尽管我建议不要这样做。
推荐的方法是将其迁移到DataWeave表达式,例如@olamiral解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。