我尝试使用WSO2ESB中的以下方法(WSO2ESB中的playload factory)将两个xml响应合并为一个xml响应。但是它仅返回第一个xml对象。请告诉我。
<payloadFactory media-type="xml">
<format>
<combined1 xmlns="">$1</combined1>
<combined2 xmlns="">$2</combined2>
</format>
<args>
<arg evaluator="xml" expression="$env/*[local-name()='Body']/*"/>
<arg evaluator="xml" expression="$ctx:HotelAmenity/*/jsonArray"/>
</args>
</payloadFactory>
输出显示如下。
<combined1>
<vh>
<ho>
<hn>Excalibur Hotel and Casino</hn>
<hc>1026</hc>
<ad>3850 Las Vegas Blvd. South</ad>
<av/>
<ci>Las Vegas</ci>
<co>USA</co>
</ho>
</vh>
</combined1>
答案 0 :(得分:1)
最后,我使用以下代码解决了这个问题。
<payloadFactory media-type="xml">
<format>
<main>
<combined1 xmlns="">$1</combined1>
<combined2 xmlns="">$2</combined2>
</main>
</format>
<args>
<arg evaluator="xml" expression="$env/*[local-name()='Body']/*"/>
<arg evaluator="xml" expression="$ctx:HotelAmenity/*/jsonArray"/>
</args>
</payloadFactory>
我刚刚添加了外部主标签,现在标签combined1和combined2都显示了,并且值也显示了。