[英]WSO2 Enrich array
我正在使用WSO2 ESB(4.8.1),并且需要转换此有效负载:
[
{
"id":"1",
"budget":"a"
},
{
"id":"2",
"bidget:"b"
}
]
在这种情况下,使用富媒体(如果可能):
[
{
"id":"1",
"budget":"a",
"result":"1-a"
},
{
"id":"2",
"bidget:"b",
"result":"2-b"
}
]
有什么建议吗?
提前致谢
看一下这个样本:
输入文件:
<?xml version="1.0" encoding="UTF-8" ?>
<employees>
<root>
<id>1</id>
<budget>a</budget>
</root>
<root>
<id>2</id>
<budget>b</budget>
</root>
<root>
<id>3</id>
<budget>c</budget>
</root>
</employees>
我的xslt:
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<employees>
<xsl:for-each select="employees/root">
<root>
<id>
<xsl:value-of select="id"/>
</id>
<budget>
<xsl:value-of select="budget"/>
</budget>
<result>
<xsl:value-of select="concat(id,'-',budget)"/>
</result>
</root>
</xsl:for-each>
</employees>
</xsl:template>
</xsl:stylesheet>
输出文件:
<?xml version="1.0" encoding="UTF-8" ?>
<employees>
<root>
<id>1</id>
<budget>a</budget>
<result>1-a</result>
</root>
<root>
<id>2</id>
<budget>b</budget>
<result>2-b</result>
</root>
<root>
<id>3</id>
<budget>c</budget>
<result>3-c</result>
</root>
</employees>
因此,您可以在WSO2 ESB( https://docs.wso2.com/display/ESB490/XSLT+Mediator )和此配置或类似配置中使用xslt中介程序,并使用您的定义。 问候。
我认为,当您不知道数组的长度时,就不会使用rich或payloadFactory对其进行转换。 我在WSO2 ESB文档中发现了相同的问题。 此JS函数可转换对象数组。
function transform(mc) {
payload = mc.getPayloadJSON();
results = payload.results;
var response = new Array();
for (i = 0; i < results.length; ++i) {
location_object = results[i];
l = new Object();
l.name = location_object.name;
l.tags = location_object.types;
l.id = "ID:" + (location_object.id);
response[i] = l;
}
mc.setPayloadJSON(response);
}
有关更多信息,请参见此链接中的 Scipte介体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.