DataWeaver Mule文件第1.1.2节和第3.4节示例不起作用?
查看Dataweaver文档 链接: 第3.4节关键问题 尝试下面提供的示例DataWeaver Mule文件第1.1.2节和第3.4节示例不起作用?,mule,mule-studio,mule-component,mule-el,dataweave,Mule,Mule Studio,Mule Component,Mule El,Dataweave,查看Dataweaver文档 链接: 第3.4节关键问题 尝试下面提供的示例 Input: <users> <name>Mariano</name> <name>Luis</name> <name>Mariano</name> </users> 当我尝试在我的DataWeaver中给出这个表达式时,它会发出警告,如无法将:字符串强制为:数组:
Input:
<users>
<name>Mariano</name>
<name>Luis</name>
<name>Mariano</name>
</users>
当我尝试在我的DataWeaver中给出这个表达式时,它会发出警告,如无法将:字符串强制为:数组:(7,92)
。
已经给出了文件中提到的相同方式。谁能给点建议吗
预期答复:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<name>Mariano</name>
<name>Mariano</name>
</users>
此行显示错误,如多个标记缺少“}”,在输入电子邮件中没有可行的替代方案
开始学习并编写提供的示例。谢谢。文档中的示例有一个打字错误,在
名称
之前缺少一个*
(应该修复):
问题是XML没有内置的列表表示,因此列表由标记的多次出现表示。表达式*name
返回一个列表,其中出现了name
,表达式[?($=“Mariano”)]
就像一个过滤器(我更喜欢过滤器,因为它更容易理解)
出现神秘的错误消息是因为操作员应用于列表,但
payload.users.name
返回name
的第一次出现。(这就是为什么它说不能将字符串强制到数组中)。谢谢!!对文件1.1.2有任何线索吗?我不理解这个问题,你的意思是文件第1.1.2节中显示的示例上的每个部分意味着什么?文件中提供的第1.1.2节示例对我也不起作用。我接受答案,因为3.4问题很好。
<?xml version="1.0" encoding="UTF-8"?>
<users>
<name>Mariano</name>
<name>Mariano</name>
</users>
%dw 1.0
%input payload application/xml
%output application/json
%function words(name) name splitBy " "
---
contacts: payload.users.*user map using (parts = words($.name)){
firstName: parts[0],
(secondName: parts[1]) when (sizeOf parts) > 2,
lastName: parts[-1],
email: "$((lower $.name) replace " " with ".")@acme.com.ar",
address: $.street
}
%dw 1.0
%input payload application/xml
%output application/xml
---
users: payload.users.*name[?($ == "Mariano")]