如何用 mule 中的另一个值替换 xml 元素的数据?

How to replace data of an xml element with another value in mule?

如何用 mule 中的另一个值替换 xml 元素的数据? 例如

<users>
<user>
    <name>abc</name>
    <city>qwe</city>
    <countryCode>india</countryCode>
</user>
<user>
    <name>yiu</name>
    <city>cdc</city>
    <countryCode>france</countryCode>
</user>
<user>
    <name>wddq</name>
    <city>dqdqw</city>
    <countryCode>brazil</countryCode>
</user>

我想将 countryCode VALUES 替换为预定义值,例如我想将 IN 用于印度,BA 用于巴西,FC 用于法国。

在 mule 中最好的方法是什么。现在我正在尝试使用属性文件中的这个值。

我想你有两个选择:

  1. 如果您需要对 XML 执行其他更改,那么我建议使用 DataWeave(如果您使用旧版本的 Mule,则使用 DataMapper)进行转换。
  2. 如果您真的只需要替换这些值,那么我认为合乎逻辑的方法是 XSLT 转换。

您可以使用 XSLT transformer 进行 XSLT 转换,但您需要编写自己的转换 XML,没有图形帮助,但并不难。

这个 answer 应该会给您一些关于在 XSLT 中替换值的提示。

我可以简单地使用 属性 文件来做到这一点,我可以将我的预定义定义放入一个国家列表 -> 国家代码映射下面是一个数据编织代码片段。

%dw 1.0
%output application/xml
---
{
    countryCodeReplacements : p(payload.users.*user.countryCode)
}