Marklogic 替换字符 � 到双引号
Marklogic replacement character � to double quote
如何替换字符 � 是在 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?
首先我会处理预防方面的问题:您可能有这些,因为文档加载时使用了不正确的编码。解决此问题的一种方法是重新加载文档,但指定正确的编码。
我认为您想使用 cts:highlight
遍历文档并替换有问题的字符:
cts:highlight(doc("/user/24325"), "󿿽", '"')
结果将是替换字符的所有匹配项都替换为双引号的文档。
如何替换字符 � 是在 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?
首先我会处理预防方面的问题:您可能有这些,因为文档加载时使用了不正确的编码。解决此问题的一种方法是重新加载文档,但指定正确的编码。
我认为您想使用 cts:highlight
遍历文档并替换有问题的字符:
cts:highlight(doc("/user/24325"), "󿿽", '"')
结果将是替换字符的所有匹配项都替换为双引号的文档。