0

在 mule 文档Dataweave Reference Documentation的帮助下,我能够删除一个带有其名称的文件,但在这里我想删除一个属性值与我的条件匹配的字段。下面是我的输入XML

输入 XML:

<users>
  <user>
    <personal_information>
        <first_name>Emiliano</first_name>
        <middle_name>Romoaldo</middle_name>
        <last_name>Lesende</last_name>
        <ssn>001-08-84382</ssn>
    </personal_information>
    <login_information>
        <info key="username">user1</info>
        <info key="password">mypassword4321</info>
    </login_information>
  </user>
</users>

在这里,我想删除属性值为密码info的元素key

预期输出应该是

<users>
  <user>
    <personal_information>
      <first_name>Emiliano</first_name>
      <middle_name>Romoaldo</middle_name>
      <last_name>Lesende</last_name>
      <ssn>001-08-84382</ssn>
    </personal_information>
    <login_information>
      <info key="username">user1</info>
    </login_information>
  </user>
</users>
4

2 回答 2

3

试试这个..

%dw 2.0
output application/xml inlineCloseOn="empty"
---
users: {
      (payload.users mapObject {
        user: {
        personal_information: $.personal_information,
        login_information: $.login_information mapObject {
            (($$) : $) if($$.@key != "password")
        }
        }
      })
}
于 2019-09-02T09:23:07.073 回答
0

希望这清楚..

%dw 2.0
output application/xml inlineCloseOn="empty"
---
users: {
      (payload.users mapObject {
        user: {
        personal_information: $.personal_information,
        login_information: $.login_information mapObject(value,key,index) -> {
            ((key) : value) if(key.@key != "password")
        }
        }
      })
}
于 2019-09-03T17:20:46.037 回答