Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String wso2esb中是否有替换功能?_String_Replace_Wso2esb - Fatal编程技术网

String wso2esb中是否有替换功能?

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

我有一条像绳子一样的线 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附带的函数。要启用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期间看到了异常。