Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Function WSO2 ESB 4.8.1中支持的XPath函数_Function_Xpath_Wso2_Esb_Synapse - Fatal编程技术网

Function WSO2 ESB 4.8.1中支持的XPath函数

Function WSO2 ESB 4.8.1中支持的XPath函数,function,xpath,wso2,esb,synapse,Function,Xpath,Wso2,Esb,Synapse,WSO2 ESB 4.8.1中似乎不支持以下XPath函数: escape-html-uri() iri-to-uri() encode-for-uri() 有人知道WSO2 ESB 4.8.1中支持哪些XPath函数,哪些不支持吗?据我所知,synapse XPath实现是基于Jaxen构建的,而Jaxen只是XPath版本1.0。因此,这些函数都不受支持,您只有非常有限的附加synapse特定的get属性扩展。从4.5.0版开始,WSO2 ESB支持XPath 2.0。默认情况下它是禁用

WSO2 ESB 4.8.1中似乎不支持以下XPath函数:

  • escape-html-uri()
  • iri-to-uri()
  • encode-for-uri()

有人知道WSO2 ESB 4.8.1中支持哪些XPath函数,哪些不支持吗?

据我所知,synapse XPath实现是基于Jaxen构建的,而Jaxen只是XPath版本1.0。因此,这些函数都不受支持,您只有非常有限的附加synapse特定的
get属性
扩展。

从4.5.0版开始,WSO2 ESB支持XPath 2.0。默认情况下它是禁用的,因此您需要执行以下操作才能启用它

  • 打开
    $ESB\u HOME/repository/conf/synapse.properties

  • 取消对下一行的注释

    synapse.xpath.dom.failover.enabled=true

要访问代理服务中的属性,需要使用前缀
syn



谢谢你,伊恩。是的,似乎只支持非常有限的XPath 1.0函数。XPath 1.0中的fn:translate()函数也不受很好的支持。@tuan可以在不使用
fn:
前缀的情况下尝试它-整个
http://www.w3.org/2005/xpath-functions
名称空间是XPath 2.0的东西,1.0核心函数不在名称空间中。我建议你加倍确保你所使用的任何文档或教程都是关于1.0而不是2.0的。尤其是这是W3学校出了名的不擅长的事情…谢谢伊恩。我成功地使用了fn:concat()函数。fn:translate()函数确实执行了,但返回了意外结果。无论如何,由于XPath函数的支持有限,我最终使用Javascript来执行我需要的一些中介逻辑。这非常有效。
<property expression="syn:get-property('myProperty')" name="getMyProperty" scope="default" type="STRING"/>