【问题标题】:xquery replace issue in Oracle Service BusOracle Service Bus 中的 xquery 替换问题
【发布时间】:2012-07-24 16:49:03
【问题描述】:

我正在尝试使用替换功能在 Oracle Service Bus xquery 转换中用一个反斜杠替换两个反斜杠:

让 $str := replace($srcStr, "\\\\", "\\"),其中 $srcStr 保存值 "^\\d{1,4}$"

但由于某种原因,这不起作用。结果仍然是 "^\\d{1,4}$"

当我在例如调用相同的函数时Altova XmlSpy 这工作正常: replace("^\\d{1,4}$", "\\\\", "\\") 结果 ^\d{1,4}

有人知道为什么 OSB 与源字符串中的反斜杠不匹配吗?有什么解决方法?

【问题讨论】:

    标签: xquery osb


    【解决方案1】:

    这是一个错误。

    您可以编写自定义正则表达式来解决此错误。

    declare function xf:replace_test($e as element()) as xs:string {
        let $str := replace("junk (\)\ junk", ".*\\.*", "\$1")
        return $str
    };
    declare variable $e as element() external; 
    xf:replace_test($e)`
    

    【讨论】:

    • 您好,穿梭机!你是对的,这是 OSB 中内置的 xquery 处理器的一个错误。你能解释一下你的 replace_test 函数是做什么的吗? ))
    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2021-10-05
    相关资源
    最近更新 更多