1

我有一个存储在本地条目中的 xslt。我将响应 xml 保存在属性中。我如何使用应该从本地条目中获取 xslt 的 xslt 调解器,而 xslt 调解器应该从属性中获取 xml,并且转换的结果应该存储在属性中。如何做到这一点?

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

我的顺序是:

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

我的 $body 是:

<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 显示为输出。我只想将此响应存储在属性调解器中。

4

2 回答 2

2

另一种选择是使用丰富的调解器将转换后的消息正文转储到属性。为此,您可以在 XSLT 中介配置之后使用以下配置片段。

<enrich>
   <source type="body"/>
   <target type="property" property="PROPERTY_NAME"/>
</enrich>

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

希望这可以帮助!

问候, 普拉巴斯

于 2013-05-19T19:42:04.250 回答
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

于 2013-05-17T10:51:53.777 回答