項目の値の変更

DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその​​すべてのサポートが終了します。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

この DataWeave の例では、一部の XML 要素の値を変更します。ここでは、機密データが含まれるキーの値を一連のアスタリスク (​****​) に変更します。

次の関数を使用します。

  • 入力のユーザを調べる ​mapObject​。ユーザごとに他の 2 つの ​mapObject​ 関数を使用して、個人情報とログイン情報の両方の項目を調べます。

  • ssn​ および ​password​ キーの値をマスクする ​if​ と ​else​。

DataWeave
%dw 2.0
output application/xml
---
users: { (payload.users mapObject (userObject) -> {
    user: {
         personal_information: userObject.personal_information mapObject (value, key) ->
         {
            (if (key ~= "ssn") (key): "****"  else (key): value)
         },
         login_information: userObject.login_information mapObject (value, key) ->
         {
            (if (key ~= "password") (key): "****" else (key): value)
         }
      }
   })
}
入力 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>
            <username>3miliano</username>
            <password>mypassword1234</password>
        </login_information>
    </user>
    <user>
        <personal_information>
            <first_name>Mariano</first_name>
            <middle_name>Toribio</middle_name>
            <last_name>de Achaval</last_name>
            <ssn>002-05-34738</ssn>
        </personal_information>
        <login_information>
            <username>machaval</username>
            <password>mypassword4321</password>
        </login_information>
    </user>
</users>
出力 XML
<?xml version="1.0" encoding="UTF-8"?>
<users>
  <user>
    <personal_information>
      <first_name>Emiliano</first_name>
      <middle_name>Romoaldo</middle_name>
      <last_name>Lesende</last_name>
      <ssn>****</ssn>
    </personal_information>
    <login_information>
      <username>3miliano</username>
      <password>****</password>
    </login_information>
  </user>
  <user>
    <personal_information>
      <first_name>Mariano</first_name>
      <middle_name>Toribio</middle_name>
      <last_name>de Achaval</last_name>
      <ssn>****</ssn>
    </personal_information>
    <login_information>
      <username>machaval</username>
      <password>****</password>
    </login_information>
  </user>
</users>