如何在wso2 ESB中使用xslt中介器?

How to use xslt mediator in wso2 ESB?

我有一个存储在本地条目中的xslt。我将响应xml保存在一个属性中。我如何使用应该从local-entry中获取xslt的xslt介体,而xslt介体应该从属性中获取xml,并且转换结果应该存储在属性中。如何实现呢?

我已经使用xslt中介器实现了转换,并且能够使用发送中介器显示该数据,但是我想知道如何将转换后的数据存储在属性中?在这方面急需解决方案。请帮忙。期待您的回答?在此先感谢

我的顺序是:

1
2
3
4
5
  <sequence>
<property xmlns:ns="http://org.apache.synapse/xsd" name="propertyResponse" expression="$body"/>
<xslt key="TransformResponseXML"/>
             <send/>
    </sequence>

我的$ body是:

1
2
3
4
5
6
7
8
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<reg_Collection xmlns="http://tempuri.org">
<Inputs>
<ID>Book_112</ID>
<Description>Name for Registeration of new Books</Description>
</Inputs>
</reg_Collection>
</soapenv:Body>

我的最终输出响应是:

1
2
3
4
<InputResponse xmlns="http://tempuri.org">
 <ID>Book_112</ID>
 <Description>Name for Registeration of new Books</Description>
</InputResponse >

现在我可以将转换后的xml显示为输出。我只想将此响应存储在Property中介器中。


另一种选择是使用扩展介体将转换后的消息正文转储到属性。为此,可以在XSLT中介程序配置之后使用以下配置代码段。

1
2
3
4
<enrich>
   <source type="body"/>
   <target type="property" property="PROPERTY_NAME"/>
</enrich>

注意:" PROPERTY_NAME"应替换为要将消息转储到的属性的名称。

希望这会有所帮助!

关于,
普拉巴特


您可以使用属性介体[1]进行存储。为属性介体提供转换后的消息的XPATH操作。存储XML消息摘录时,请使用类型'OM'。
(如果需要存储整个主体,请使用$ body;如果只需要一部分,则使用适当的XPATH。http://docs.wso2.org/wiki/display/ESB451/Synapse XPath Variables#SynapseXPathVariables-body)

[1] http://docs.wso2.org/wiki/display/ESB460/Property Mediator