Mule 在Dataweave中处理空xml节点

Mule 在Dataweave中处理空xml节点,mule,mule-studio,mule-component,mule-el,dataweave,Mule,Mule Studio,Mule Component,Mule El,Dataweave,如何访问主体和/或避免mule data weave中xml节点中的空值错误 假设这是我的节点: 5014414203648 双层被套 线 真的 真的 真的 违约 线性 线性 机器 粉红色 平原 不适用 我的Dataweave代码是: %dw 1.0 %输入有效负载应用程序/xml %输出应用程序/java --- (payload.catalog.*产品默认值[])映射{ 目录详情:{ CatalogId:payload.catalog.@CatalogId }, 产品详情:{ 产品id:

如何访问主体和/或避免mule data weave中xml节点中的空值错误

假设这是我的节点:


5014414203648
双层被套
线
真的
真的
真的
违约
线性
线性
机器
粉红色
平原
不适用
我的Dataweave代码是:

%dw 1.0
%输入有效负载应用程序/xml
%输出应用程序/java
---
(payload.catalog.*产品默认值[])映射{
目录详情:{
CatalogId:payload.catalog.@CatalogId
},
产品详情:{
产品id:$。@product id,
模式:$。@模式,
ean:$.ean,
upc:$.upc,
最小订单数量:$。最小订单数量,
显示名称:$。显示名称,
简短描述:$。简短描述
},
值:{(
($.custom attributes.*自定义属性默认值[])映射{
(sellByUnitVal:$)当($.@attribute id)=“sellByUnit”时,
(VOLUMEVal:$)当($.@attribute id)=“VOLUME”,
(UnitMeasureVal:$)当($.@attribute id)=“UnitMeasure”时
} 
) }
}

第一个产品节点不接收正文。我尝试使用默认的
[]
,但它不起作用。我怎样才能确保它总是收到尸体

您的XML示例不完整且无效,缺少在DataWeave脚本中使用的upc值等

您的解决方案可能类似于检查节点的大小,如果是0,则使用空格填充它,如果不是,则执行普通脚本


如果您有完整的示例会有所帮助。

您的XML示例不完整且无效,缺少在DataWeave脚本中使用的upc值等

您的解决方案可能类似于检查节点的大小,如果是0,则使用空格填充它,如果不是,则执行普通脚本


如果您有完整的示例,将有所帮助。

我找到了一种处理空节点的方法,因为我们可以使用过滤器跳过空节点

(payload.catalog.*product default []) filter ($ !='') map { }

使用它,我们可以控制转换中的空或非空标记。

我找到了一种处理空节点的方法,因为我们可以使用过滤器跳过空节点

(payload.catalog.*product default []) filter ($ !='') map { }

我们使用它来控制转换中的空或非空标记。

这不是第三个空的产品吗?你能告诉我们你用来读取xml节点的代码吗?我分享了我的示例代码。。请看一看,这不是第三个空的产品吗?你能告诉我们你用来读取xml节点的代码吗?我分享了我的示例代码。。请看一下xml是否正确。。有些节点可能会进入传入的xml,也可能不会。因此,我还必须为这些元素创建映射。产品节点在输入xml中重复。出于演示目的,我只添加了2个产品,xml是正确的。。有些节点可能会进入传入的xml,也可能不会。因此,我还必须为这些元素创建映射。产品节点在输入xml中重复。为了演示,我只添加了2个产品