1

如何用 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>

我想将countryCodeVALUES 替换为预定义的值,比如我想 IN 代表印度,BA 代表巴西,FC 代表法国。

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

4

2 回答 2

3

我认为在这里你有2个选择:

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

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

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

于 2016-01-31T16:59:35.720 回答
0

我可以简单地使用属性文件来做到这一点,如果我可以将我的哪些预定义定义包含一个国家/地区-> 国家/地区代码映射列表,下面是一个 dataweave 代码片段。

%dw 1.0
%output application/xml
---
{
    countryCodeReplacements : p(payload.users.*user.countryCode)
}
于 2016-06-01T12:00:58.597 回答