#xslt
#xslt
Вопрос:
Простая строка даты должна быть маркирована. Я использую этот пример кода xslt:
fn:tokenize(date, '[ .s] ')
Все варианты неправильного формата даты (например, «10.10.2020», «10. 10 . 2020», «10 . 10. 2020») обозначаются ok с помощью функции, описанной выше, за исключением случаев, когда присутствует начальный пробел (например, «10.10.2020»). Если присутствует начальный пробел, первый элемент затем маркируется как » » пробел.
Есть ли возможность игнорировать и эти начальные пробелы, поэтому независимо от того, насколько плох формат, только разделитель «.» означает другой токен, и все пробелы также удаляются?
Комментарии:
1. Разве вы не можете просто использовать
tokenize(normalize-space(date), '.')
? Или использоватьtokenize(replace(date, '^s |s $'), '[ .s] ')
.2. Я попробовал первый вариант, как вы предложили, но он по-прежнему оставляет некоторые пробелы (22-) (-6-) (-2018) с каждым элементом. Я просто заменил пробелы на «-«, чтобы проиллюстрировать ситуацию. Затем я просто обновил свой код с помощью normalize-space, и он работает нормально. Я также опубликовал решение. Спасибо!
Ответ №1:
Кажется, правильное решение:
fn:tokenize(normalize-space(date, '[ .s] ')