Строковые функции
Функция
Подобно функциям boolean и number, функция string преобразует свой аргумент к строковому типу явным образом. Если аргумент опущен, функции передается множество узлов, состоящее из единственного контекстного узла.
Напомним вкратце правила приведения других типов к строке.
□ Булевые значения преобразуются в строку следующим образом:
• 'истина' (true) преобразуется в строку 'true';
• 'ложь' (false) преобразуется в строку 'false'.
□ Числа преобразуются к строковому виду следующим образом:
• не-число (NaN) преобразуется в строку 'NaN';
• положительный нуль преобразуется в строку '0';
• отрицательный нуль преобразуется в строку '0';
• положительная бесконечность преобразуется в строку 'Infinity';
• отрицательная бесконечность преобразуется в строку '-Infinity';
• положительные целые преобразуются в свое десятичное представление без ведущих нулей и без точки ('.'), отделяющей дробную часть от целой;
• отрицательные целые преобразуются так же, как и положительные, но с начальным знаком 'минус' ('-');
• остальные числа преобразуются в десятичное представление с использованием точки ('.'), отделяющей целую часть от дробной части; целая часть не содержит ведущих нулей (кроме случая с числами в интервале (-1;1)), дробная часть содержит столько цифр, сколько требуется для точного представления числа.
□ Множество узлов преобразуется в строковое значение своего первого в порядке просмотра документа узла. Если множество пусто, функция возвращает пустую строку.
□ Объекты других типов преобразуются в строку в соответствии с собственными правилами. Например, результирующий фрагмент дерева преобразуется в конкатенацию всех своих строковых узлов.
string(boolean(0)) → false
string(number('zero')) → NaN
string(number('.50000')) →0.5
string(number(00500.)) → 500
Для строкового форматирования чисел рекомендуется использовать функцию XSLT format- number совместно с элементом xsl:decimal-format.
Функция
Функция concat принимает на вход две или более строки и возвращает конкатенацию (строковое сложение) своих аргументов.
Пример:
concat('not','with','standing',' problem') → 'notwithstanding problem'
Функция
Функция starts-with принимает на вход два строковых аргумента и возвращает true, если первая строка начинается второй и false в противном случае.
starts-with('http://www.xsltdev.ru', 'http') → true
starts-with('Title', 'ti') → false
Функция
Функция contains принимает на вход два строковых аргумента и возвращает true, если первая строка содержит вторую и false в противном случае.
contains('[email protected]', '(@') → true
Функция
Функция substring-before принимает на вход два строковых аргумента. Эта функция находит в первой строке вторую и возвращает подстроку, которая ей предшествует. Если вторая строка не содержится в первой, функция вернет пустую строку.
substring-before('12-May-1998', '-') → '12'
substring-before('12 May 1998', ' ') → '12'
substring-before('12 May 1998', ' ') → '12'
substring-before('12 May 1998', '-') → ''
Функция
