【问题标题】:Supported XPath functions in WSO2 ESB 4.8.1WSO2 ESB 4.8.1 中支持的 XPath 函数
【发布时间】:2014-06-16 15:13:41
【问题描述】:

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

  • escape-html-uri()
  • iri-to-uri()
  • 为 uri() 编码

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

【问题讨论】:

    标签: function xpath wso2 esb synapse


    【解决方案1】:

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

    • 打开$ESB_HOME/repository/conf/synapse.properties

    • 取消注释以下行,

      synapse.xpath.dom.failover.enabled=true

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

    例如

    <property expression="syn:get-property('myProperty')" name="getMyProperty" scope="default" type="STRING"/>
    

    【讨论】:

      【解决方案2】:

      据我从the JavaDocs 得知,Synapse XPath 实现是基于 Jaxen 构建的,它只是 XPath 1.0 版。因此,将不支持这些功能,您只有非常有限的function library of XPath 1.0 加上特定于突触的get-property 扩展。

      【讨论】:

      • 谢谢伊恩。是的,似乎支持非常有限的 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。特别是这方面 w3schools 是出了名的不擅长......
      • 谢谢伊恩。我成功使用了 fn:concat() 函数。 fn:translate() 函数确实被执行了,但是它返回了一个意外的结果。无论如何,由于对 XPath 函数的支持有限,我最终使用 Javascript 来执行一些我需要的中介逻辑。效果很好。
      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 2014-04-23
      相关资源
      最近更新 更多