如何替换字符-是在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?
答案 0 :(得分:4)
首先,我要处理预防方面:您可能有这些,因为文档加载时使用了错误的编码。解决此问题的一种方法是重新加载文档,但指定正确的编码。
我认为您想使用cts:highlight
浏览文档并替换有问题的字符:
cts:highlight(doc("/user/24325"), "󿿽", '"')
结果将是替换字符的所有匹配项都被双引号替换的文档。