String wso2esb中是否有替换功能?
我有一条像绳子一样的线 htt://api.orgsync.com/orgs/{orgId}/events?key={orgSyncKey}&startdate={startdate}&enddate={enddate} 我需要将{orgId}替换为1234,{orgSyncKey}替换为2345,{startDate}替换为2004年1月12日,{endDate}替换为2005年2月15日String wso2esb中是否有替换功能?,string,replace,wso2esb,String,Replace,Wso2esb,我有一条像绳子一样的线 htt://api.orgsync.com/orgs/{orgId}/events?key={orgSyncKey}&startdate={startdate}&enddate={enddate} 我需要将{orgId}替换为1234,{orgSyncKey}替换为2345,{startDate}替换为2004年1月12日,{endDate}替换为2005年2月15日 wso2esb中是否有replace类函数?replace是XPath 2.0附带的函数。要启用XPat
wso2esb中是否有replace类函数?
replace
是XPath 2.0附带的函数。要启用XPath 2.0函数,请取消注释synapse.properties文件中的以下条目,该文件位于$ESB_HOME/repository/conf目录中
synapse.xpath.dom.failover.enabled=true
然后您必须按如下所示指定中介
replace
是XPath 2.0附带的一个函数。要启用XPath 2.0函数,请取消注释synapse.properties文件中的以下条目,该文件位于$ESB_HOME/repository/conf目录中
synapse.xpath.dom.failover.enabled=true
然后您必须按如下所示指定中介
参见中提到的示例
可以使用要在url中替换的键和值创建属性中介。然后,您可以调用send mediator,它有一个带有这些占位符的端点url。请参阅中提到的示例
可以使用要在url中替换的键和值创建属性中介。然后,您可以调用send mediator,它有一个带有这些占位符的端点url。您可以使用xpath 2.0中提供的xpath替换函数。首先,需要在esb上启用XPath2.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中提供的xpath替换函数。首先,需要在esb上启用XPath2.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脚本。如果您不习惯使用XPATH 2.0,您可以使用脚本中介并为字符串替换编写javascript脚本。您可以像下面这样做 更改这是synapse.properties synapse.xpath.dom.failover.enabled=true 假设我们有一个句子,比如我有{Amount}pets。我们需要替换{Amount} 然后我们可以写如下
<property name="MESSAGE" value="I have {Amount} pets" scope="default" type="STRING"/>
<property name="AMOUNT_PLACE_HOLDER" value="\{Amount\}" scope="default" type="STRING"/>
<property name="MESSAGE_TEMP"
expression="replace($ctx:MESSAGE, $ctx:AMOUNT_PLACE_HOLDER, '10')"/>
您可以像下面这样做
更改这是synapse.properties
synapse.xpath.dom.failover.enabled=true
假设我们有一个句子,比如我有{Amount}pets。我们需要替换{Amount}
然后我们可以写如下
<property name="MESSAGE" value="I have {Amount} pets" scope="default" type="STRING"/>
<property name="AMOUNT_PLACE_HOLDER" value="\{Amount\}" scope="default" type="STRING"/>
<property name="MESSAGE_TEMP"
expression="replace($ctx:MESSAGE, $ctx:AMOUNT_PLACE_HOLDER, '10')"/>
hi,获取错误消息:XPath表达式fn:replace(';hi thiru';,';hi';,';hellow';)的计算结果导致错误wso2esb中是否存在替换函数?是的,但只有启用XPath时才存在。根据共享的第一步,您是否启用了此功能synapse.xpath.dom.failover.enabled=true
您可以粘贴属性
中介配置以获得更好的帮助。此外,请确保转义要替换的模式或字符串中的特殊字符。i、 e.{startDate}
应该是\{startDate\}
如果我没有弄错的话,我已经在发行说明中看到了,因为4.9.0 wso2esb使用saxon和xslt 2.0支持。至少我在saxon package.hi中的xslt transofrm期间看到了异常,获取错误消息:XPath表达式的求值fn:replace(';hi thiru';,';hi';';hellow';)导致wso2esb中存在错误替换功能?是的,但只有启用XPath时才存在。根据共享的第一步,您是否启用了此功能synapse.xpath.dom.failover.enabled=true
您可以粘贴属性
中介配置以获得更好的帮助。此外,请确保转义要替换的模式或字符串中的特殊字符。i、 e.{startDate}
应该是\{startDate\}
如果我没有弄错的话,我已经在发行说明中看到了,因为4.9.0 wso2esb使用saxon和xslt 2.0支持。至少我在saxon包中的xslt transofrm期间看到了异常。