DataWeaver Mule文件第1.1.2节和第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中给出这个表达式时,它会发出警告,如无法将:字符串强制为:数组:

查看Dataweaver文档 链接:

第3.4节关键问题 尝试下面提供的示例

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")]