【问题标题】:Evaluation of the XPath expression resulted in an errorXPath 表达式的评估导致错误
【发布时间】:2020-01-09 18:42:54
【问题描述】:

我正在尝试对字符串执行简单的 XPath 表达式(例如,FHP2019/0156)。我的目标是用_ 字符替换/ 字符。

我使用的 XPath 表达式是:fn:replace($ctx:ApplicationID , '/', '_')

但我收到以下错误:

XPath 表达式 fn:replace($ctx:ApplicationID , '/', '_') 导致错误

【问题讨论】:

  • get-property(...) 不是标准的 XPath 函数。而fn:replace 是一个 XPath-2.0 函数,仅当您的 XPath 处理器支持 XPath-2.0 或更高版本时才有效。
  • 谢谢。 fn:replace($ctx:ApplicationID , '/', '_') 是更好的选择吗?

标签: xpath wso2 wso2esb wso2ei


【解决方案1】:

因为,replace 是 XPATH 2.0 的功能,所以您必须在 esb 中启用 xpath 2.0。取消注释 synapse.properties conf 文件中的“synapse.xpath.dom.failover.enabled=true”行并重新启动服务器。您可能需要将表达式从 "fn:replace($ctx:ApplicationID , '/', '')" 更改为 "replace($ctx: ApplicationID , '/', '')"

请注意,启用 xpath 2.0 功能可能会影响已定义的其他 xpath 表达式。在这种情况下,您可能必须找到 fn:replace 的替代方法。

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多