【问题标题】:DataWeaver Mule Document section 1.1.2 and 3.4 examples not working?DataWeaver Mule 文档第 1.1.2 和 3.4 节示例不起作用?
【发布时间】:2015-08-28 00:48:54
【问题描述】:

浏览 Dataweaver 文档 链接:https://developer.mulesoft.com/docs/dataweave#_attribute_selector_expressions

第 3.4 节主要介绍 试用下面提供的示例。

Input:
       <users>
     <name>Mariano</name>
       <name>Luis</name>
        <name>Mariano</name>
  </users>

变换:

        %dw 1.0
      %input payload application/xml   
      %output application/xml
       ---
       users: payload.users.name[?($ == "Mariano")]

当我尝试在我的 DataWeaver 中给出这个表达式时,它会给出类似cannot coerce a:string to a: array:(7,92) 的警告。 已经给出了文档中提到的相同方式。谁能给点建议。

预期响应:

           <?xml version="1.0" encoding="UTF-8"?>
          <users>
          <name>Mariano</name>
          <name>Mariano</name>
          </users>

在文档 1.1.2 字符串操作示例中也不适合我

        %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
         }

显示类似multiple marker at this line missing '}' no viable alternative at input email的错误

开始学习和解决所提供的示例。谢谢。

【问题讨论】:

    标签: mule mule-studio mule-component mule-el dataweave


    【解决方案1】:

    文档中的示例有一个错字,name 之前缺少一个*(应该已修复):

    %dw 1.0
    %input payload application/xml
    %output application/xml
    ---
    users: payload.users.*name[?($ == "Mariano")]
    

    问题在于 XML 没有内置的列表表示,因此列表由标记的多次出现来表示。表达式*name 返回一个包含name 出现次数的列表,表达式[?($ == "Mariano")] 就像一个过滤器(我更喜欢过滤器,因为它更容易理解)。

    出现神秘错误消息是因为运算符应用于列表,但payload.users.name 返回name 的第一次出现。 (这就是为什么它说不能将字符串强制转换为数组)。

    【讨论】:

    • 谢谢!!对文档 1.1.2 有任何线索吗?
    • 我没有理解这个问题,你的意思是文档第 1.1.2 节中显示的示例中的每个部分是什么意思?
    • 文档中提供的第 1.1.2 节示例也不适合我。
    • 我接受这个答案,因为 3.4 的问题工作正常。
    猜你喜欢
    • 2016-07-24
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    相关资源
    最近更新 更多