XQuery: удаление символа новой строки / возврата из конца строки, хранящейся в переменной в запросе

Как мне удалить новую строку / возврат из конца переменной? Я старался functx:substring-before-last попытаться удалить новую строку (обозначив ее как \r, \n а также как \r\n) но все же, когда я вывожу значение этой переменной, новая строка все еще там.

2 ответа

Решение

Вы можете использовать fn:normalize-space($arg as xs:string?) удалить все дополнительные пробелы:

Сводка: возвращает значение $arg с пробелами, нормализованными путем удаления начальных и конечных пробелов и замены последовательностей из одного или нескольких пробельных символов одним пробелом, #x20,

Или вы можете просто использовать fn:replace(..) и регулярное выражение:

fn:replace($string, '(\r?\n|\r)$', '')

CR и NL могут быть указаны как 
 а также 
, Следующее регулярное выражение удалит все завершающие символы новой строки из вашей входной строки:

replace($string, '(
?
)*$', '')

Если вы хотите нормализовать все пробелы строки, normalize-string это еще один, более читаемый вариант:

normalize-space($string)
Другие вопросы по тегам