2016-10-20 81 views
0

我有串狀 的htt://api.orgsync.com/orgs/ {} ORGID /事件鍵= {} orgSyncKey & STARTDATE = {}的startDate ENDDATE & = {endDate}結束wso2esb中是否有替換函數?

我需要將{orgId}替換爲1234,將{orgSyncKey}替換爲2345,將{startDate}替換爲12/01/2004,將{endDate}替換爲15/02/2005。

是否有任何取代 wso2esb中的函數?

回答

1

replace是XPath 2.0附帶的一個函數。要啓用XPath 2.0函數,請取消位於$ ESB_HOME/repository/conf目錄中的synapse.properties文件中的以下條目。

synapse.xpath.dom.failover.enabled=true 

,那麼你必須按如下方式指定中介,

<property 
expression="fn:replace('your_original_string', 'pattern_to_replace', 'your_new_string')" 
name="NEWSTRING" scope="default" type="STRING" 
xmlns:fn="http://www.w3.org/2005/xpath-functions" /> 
+1

喜,得到錯誤messgae:XPath表達式FN的評價爲:替換('喜瑟爾','喜',' hellow ')導致錯誤 – Thiru

+0

不取代funtion存在wso2esb? – Thiru

+0

是的,但前提是您啓用XPath。根據共享的第一步,你有沒有啓用它? 'synapse.xpath.dom.failover.enabled = true' – livepwndz

0

您可以使用XPath 2.0中提供的xpath替換函數。首先你需要在esb上啓用xpath 2.0。對於該設置以下屬性

synapse.xpath.dom.failover.enabled=true 

[ESB_HOME]/repository/conf/synapse.properties文件。

假設原始字符串設置爲以下屬性。

<property name="OriginalString" 
value="htt://api.orgsync.com/orgs/{orgId}/events?key={orgSyncKey}&startdate={startDate}&enddate={endDate}" 
scope="default" type="STRING"/> 

您可以使用屬性介體替換字符串中所需的部分。

<property name="ReplacedString" expression="fn:replace(fn:replace(fn:replace((fn:replace($ctx:OriginalString , '\{orgId\}', '1234')), '\{orgSyncKey\}', '2345'), '\{startDate\}' ,'12/01/2004'), '\{endDate\}' , '15/02/2005')" scope="default" type="STRING" xmlns:fn="http://www.w3.org/2005/xpath-functions" /> 
0

如果您不使用XPATH 2.0,則可以使用腳本中介併爲字符串替換編寫javascript腳本。