Марклогический символ замены для двойной кавычки - PullRequest
0 голосов
/ 21 мая 2019

Как заменить символ - это символ, найденный в Юникоде для двойных кавычек в 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 Ответ

4 голосов
/ 22 мая 2019

Во-первых, я бы позаботился о предотвращении: у вас, вероятно, они есть, потому что документы загружены с неверной кодировкой.Один из способов исправить это - перезагрузить документы, указав правильную кодировку.

Я думаю, что вы хотите использовать cts:highlight для обхода документа и замены оскорбительных символов:

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

Результатом будет документ со всеми совпадениями заменяющего символа, замененного надвойная цитата.

...