我有串狀 的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中的函數?
我有串狀 的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中的函數?
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" />
看到https://docs.wso2.com/display/ESB480/HTTP+Endpoint#HTTPEndpoint-XMLConfigurationXMLConfiguration
您可以創建要在以取代鍵和值屬性調解員提到的例子網址。然後,您可以使用這些佔位符調用具有端點URL的發送中介。
您可以使用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" />
如果您不使用XPATH 2.0,則可以使用腳本中介併爲字符串替換編寫javascript腳本。
喜,得到錯誤messgae:XPath表達式FN的評價爲:替換('喜瑟爾','喜',' hellow ')導致錯誤 – Thiru
不取代funtion存在wso2esb? – Thiru
是的,但前提是您啓用XPath。根據共享的第一步,你有沒有啓用它? 'synapse.xpath.dom.failover.enabled = true' – livepwndz