Marklogic替换字符-双引号

时间:2019-05-21 20:08:27

标签: marklogic

如何替换字符-是在Unicode中找到的在Marklogic中加双引号的符号。我发现成千上万个具有特殊字符的文档(xml格式)出现在随机元素节点中(某些节点具有字符�,而某些节点则没有)。想要在文档中搜索特殊字符并永久替换双引号(“)。

let $doc := fn:doc("/user/24325.xml")//fields/SearchFieldvalue
let $b:=fn:replace($doc,"�",""")
return ($doc,$b)

[1.0-ml] XDMP-ARGTYPE: (err:XPTY0004) 
fn:replace((fn:doc("/user/24325.xml")//fields/SearchField[1]/value,
fn:doc("/user/24325.xml")//fields/SavedSearchField[2]/value, 
fn:doc("/user/24325.xml")//fields/SavedSearchField[3]/value, ...), 
"�", """) -- arg1 is not of type xs:string?

1 个答案:

答案 0 :(得分:4)

首先,我要处理预防方面:您可能有这些,因为文档加载时使用了错误的编码。解决此问题的一种方法是重新加载文档,但指定正确的编码。

我认为您想使用cts:highlight浏览文档并替换有问题的字符:

cts:highlight(doc("/user/24325"), "󿿽", '"')

结果将是替换字符的所有匹配项都被双引号替换的文档。