如何在数据编织(Mulesoft)中进行此映射

如何在数据编织(Mulesoft)中进行此映射,mule,dataweave,anypoint-studio,Mule,Dataweave,Anypoint Studio,1.街道地址:如果ABC为空且ZXY已填充,则映射ZXY 2.街道地址UC:如果ZXY和ABC都已填充,且ABC不以“邮政信箱”、“邮政信箱”、“BP”或“邮政巴士”开头,则映射ABC;否则映射为ZXY 3.街道地址:如果P08 ABC已填充且ZXY为空,则仅地图ABC 我已经设法绘制了第一种情况和第三种情况,如下所示,但不确定如何绘制第二种情况 { ADDRESS_LINE1:ABC } when ABC != "" otherwise { ADDRESS

1.街道地址:如果ABC为空且ZXY已填充,则映射ZXY 2.街道地址UC:如果ZXY和ABC都已填充,且ABC不以“邮政信箱”、“邮政信箱”、“BP”或“邮政巴士”开头,则映射ABC;否则映射为ZXY 3.街道地址:如果P08 ABC已填充且ZXY为空,则仅地图ABC

我已经设法绘制了第一种情况和第三种情况,如下所示,但不确定如何绘制第二种情况

{
ADDRESS_LINE1:ABC
   } when ABC != ""
     otherwise
     {

     ADDRESS_LINE1:ZXY
     }

试试这个。。。它应该会起作用

你可以在。。否则就像你在任何语言中所做的那样

%dw 1.0
%output application/java
---
{
    'Address': (payload.addr.ABC when (payload.addr.ABC[0..5] != 'PO BOX' 
                                        and payload.addr.ABC[0..7] != 'P.O. BOX') otherwise payload.addr.XYZ)
                    when (payload.addr.ABC != '' 
                            and payload.addr.XYZ != '')
                    otherwise (payload.addr.ABC when payload.addr.ABC != '' otherwise payload.addr.XYZ)

}
我用样本输入进行了检查-

<?xml version='1.0' encoding='UTF-8'?>
<addr>
    <ABC>P.O. BOX 123</ABC>
    <XYZ>DEFG</XYZ>
</addr>

邮政信箱123
德福

!符号不起作用,我能知道0..5有什么作用吗???@SatheeshKumar,你看到了什么错误!?[0..5]是字符串范围选择器(如子字符串)。ABC[0..5]将返回字符串的前6个字符。签入更多文档。对于我文章中的上述示例输入,我在输出中获得DEFG作为地址,因为ABC以“P.O.BOX”开头