我有一个存储在local-entry中的xslt。我已将响应xml保存在属性中。我如何使用应该从local-entry和xslt介体获取xslt的xslt介体应该从属性中获取xml,并且转换的结果应该存储在属性中。怎么做到这一点?
我已经使用xslt介体实现了转换,我能够使用send mediator显示数据,但我想知道,如何将转换后的数据存储在属性中?在这方面非常需要解决方案。请帮忙。期待您的回答?提前致谢
我的序列是:
<sequence>
<property xmlns:ns="http://org.apache.synapse/xsd" name="propertyResponse" expression="$body"/>
<xslt key="TransformResponseXML"/>
<send/>
</sequence>
我的身体是:
<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>
我的最终输出回复是:
<InputResponse xmlns="http://tempuri.org">
<ID>Book_112</ID>
<Description>Name for Registeration of new Books</Description>
</InputResponse >
现在我可以将转换后的xml显示为输出。我只想将此响应存储在Property mediator中。
答案 0 :(得分:2)
另一种选择是使用rich mediator将转换后的消息体转储到属性。为此,您可以在XSLT介体配置之后使用以下配置代码段。
<enrich>
<source type="body"/>
<target type="property" property="PROPERTY_NAME"/>
</enrich>
注意:“PROPERTY_NAME”应替换为您要将邮件转储到的媒体资源的名称。
希望这有帮助!
此致 Prabath
答案 1 :(得分:0)
您可以使用属性介体[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