Я пишу код, который должен возвращать измененную версию узла XML без изменения исходного узла в родительском документе.
Как я могу скопировать / клонировать узел, чтобы исходный контекст не был связан / не затронут им? Я не хочу, чтобы изменения, внесенные в этот узел, изменили исходный узел в родительском документе, только копию, которую возвращает моя функция.
То, что я ищу, будет очень похоже на то, что cts: highlight делает внутренне:
Возвращает копию узла, заменяя любой текст, соответствующий запросу, указанным выражением. Вы можете использовать эту функцию, чтобы легко выделить любой текст, найденный в запросе. В отличие от fn: replace и других строковых функций XQuery, которые соответствуют литеральному тексту, cts: highlight сопоставляет все термины, соответствующие поиску, включая совпадения по корню или совпадения с разными заглавными буквами. [marklogic docs> cts: highlight]