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'。 [1] http://docs.wso2.org/wiki/display/ESB460/Property Mediator
(如果需要存储整个主体,请使用$ body;如果只需要一部分,则使用适当的XPATH。http://docs.wso2.org/wiki/display/ESB451/Synapse XPath Variables#SynapseXPathVariables-body)