Эта функция аналогична функции substring-before, только она возвращает строку, которая следует за вторым аргументом. Если вторая строка не содержится в первой, эта функция также вернет пустую строку.
substring-after('12-May-1998', '-') → 'May-1998'
substring-after('12 May 1998', ' ') → 'May 1998'
substring-after('12 May 1998', ' ') → 'May 1998'
substring-after('12 May 1998', '-') → ''
Функция
Функция substring возвращает подстроку переданного ей строкового аргумента, которая начинается с позиции, указанной вторым аргументом и длиной, указанной третьим аргументом. Если третий аргумент опущен, подстрока продолжается до конца строки. Если численные аргументы являются нецелыми, они округляются при помощи функции round.
В XPath позицией первого символа является 1, а не 0, как в некоторых других языках программирования.
При вычислении подстроки учитываются следующие условия.
□ Если первый численный аргумент меньше 1 (это относится и к отрицательной бесконечности), то подстрока начинается с начала строки.
□ Если первый численный аргумент больше длины строки (это относится и к положительной бесконечности), то подстрока будет пустой.
□ Если второй численный аргумент меньше 1 (это относится и к отрицательной бесконечности), то подстрока будет пустой.
□ Если второй численный аргумент, сложенный с первым, больше длины строки плюс один, подстрока будет продолжаться до конца строки.
substring('123456', 2, 3) → '234'
substring('123456', 2, 5) → '23456'
substring('123456', 2, 6) → '23456'
substring('123456', 2) → '23456'
substring('123456', -4) → '123456'
substring('123456', 5, 5) → '5'
substring('123456', 5) → '56'
substring ('123456', 6) → '6'
substring('123456', 1 div 0, ) → ''
substring('123456', 2, -1) → ''
Функция
Функция string-length возвращает число символов строкового аргумента. Если аргумент опущен, string-length возвращает длину строкового представления контекстного узла.
Напомним, что длина строки не имеет ничего общего с количеством байт, которое требуется для ее представления. Разные формы кодирования используют разное количество байт для записи символов, внутренние представления строк также могут быть различными, но длина строки в любом случае — это число символов, которые ее составляют.
string-length('Barnes and Noble') →16
string-length('Barness#x20;& Noble') → 14
Функция
Функция normalize-space производит со своим строковым аргументом так называемую нормализацию пробельного пространства. Это означает, что в строке удаляются ведущие и заключающие пробельные символы, а все последовательности пробелов заменяются одним пробельным символом. Иными словами, функция удаляет 'лишние' пробелы в строке.
Если аргумент функции опущен, она выполняется со строковым значением контекстного узла.
normalize-space(' А - В - С ') → 'А-В-С'
normalize-space('А &#х9; В &#х9; С') > 'A B C'
Функция
Функция translate производит замену символов первого своего строкового аргумента, которые присутствуют во втором аргументе на соответствующие символы третьего аргумента.
translate('abcdefgh', 'aceg', 'ACEG') → 'AbCdEfGh'
Если некоторый символ повторяется во втором аргументе несколько раз, учитывается только первое его появление.
translate('abcdefgh', 'acaeaga', 'ACBECGD') → 'AbCdEfGh'
Если второй аргумент длиннее третьего, символы, для которых нет соответствующей замены, удаляются из строки.
translate('a b-c=d+e|f/gh', 'aceg-=+|/', 'ACEG') → 'AbCdEfGh'
Если третий аргумент длиннее второго, остаток строки игнорируется.
translate('abcdefgh', 'aceg', 'ACEGBDFH') → ' AbCdEfGh'
Функцию translate можно использовать, например, для изменения регистра символов. Конечно, это будет работать только для тех языков, для которых такая функция будет записана,
