2013-05-17 54 views
0

我有一個xslt,我已經存儲在local-entry中。我有保存在屬性中的響應xml。我該如何使用xslt mediator,它應該從local-entry獲取xslt,xslt mediator應該從屬性獲取xml,轉換的結果應該存儲在一個屬性中。如何實現這一目標?如何在wso2 ESB中使用xslt mediator?

我已經實現了使用xslt 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中介中存儲這個響應。

回答

0

您可以使用property mediator [1]存儲它。爲屬性介體的已轉換消息提供XPATH操作。在存儲XML消息提取時使用類型「OM」。 (如果你需要存儲的完整的身體使用$身體和與之相似採用適當的XPATH如果你只需要一個部分。http://docs.wso2.org/wiki/display/ESB451/Synapse+XPath+Variables#SynapseXPathVariables-body

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

+0

但我應該怎麼寫來獲得財產轉換後的數據。你能爲我提供一個例子嗎? – Roy

+0

我修改了我的問題 – Roy

+0

您應該在XSLT轉換後放置媒體中介。

2

另一種選擇是使用豐富調解轉儲將消息體轉換爲屬性。爲此,您可以在XSLT中介器配置之後使用以下配置代碼片段。

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

注意:應將「PROPERTY_NAME」替換爲您希望將消息轉儲到的屬性的名稱。

希望這會有所幫助!

問候, Prabath