xquery替换Oracle Service Bus中的问题

时间:2012-07-24 16:49:03

标签: xquery osb

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

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

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

当我在例如呼叫同一功能时Altova XmlSpy这个工作正常:替换(“^ \\ d {1,4} $”,“\\\\”,“\\”)结果^ \ d {1,4}

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

1 个答案:

答案 0 :(得分:2)

这是一个错误。

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

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)`