我正在尝试读取 xml 并将 if else 条件放在某个标记上。如果数据存在,我需要打印 true 否则 false。下面是我正在尝试读取的示例 XML:
<?xml version='1.0' encoding='ISO-8859-1'?>
<ns01:active xmlns:ns01="http://Atlas.Schemas.Policy/1.0">
<Id>
<groupId>66d9057f-0951-4970-86d6-4d69d3572abe</groupId>
</Id>
</ns01:active>
我尝试使用这个 dataweave 代码,但它对我不起作用:
if(payload.active.Id.groupId != null) "true" else "False"
您遇到的问题与命名空间的使用无关。请注意,无法在纯 XML 中表示
null
。
如果您想在元素存在(即有一个具有该名称的键)独立于其值(即元素内的内容)时返回 true,那么您可以使用 key-present 选择器(即添加一个
?
键名后面有问号)。
如果您想查看元素的值是否为空,您可以使用函数 isEmpty()。您可以使用 not 运算符 (
!
) 来否定其返回值。
示例:
%dw 2.0
output application/json
---
{
keyPresentSelector: payload.active.Id.groupId?,
hasValue: !isEmpty(payload.active.Id.groupId)
}
输出:
{
"keyPresentSelector": true,
"hasValue": true
}