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

时间:2016-01-31 10:48:38

标签: xml mule mule-studio anypoint-studio

如何用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为法国。

在骡子中做什么应该是最好的方法。目前我正在尝试使用属性文件中的这些值。

2 个答案:

答案 0 :(得分:3)

我认为你有两个选择:

  1. 如果您需要对XML执行其他更改,那么我建议使用DataWeave进行转换(如果使用旧版本的Mule,则建议使用DataMapper)。
  2. 如果您真的只需要替换这些值,那么我认为逻辑方法将是XSLT转换。
  3. 您可以使用XSLT transformer进行XSLT转换,但是您需要编写自己的转换XML,没有图形辅助,但并不困难。

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

答案 1 :(得分:0)

我能够简单地使用属性文件来执行此操作,因为我可以将我的预定义定义包含在country-&gt;列表中。国家/地区代码映射以下是数据编辑代码段。

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