Пример:
concat('not','with','standing',' problem')
→ 'notwithstanding problem'
boolean starts-with( string , string )
Функция starts-with
принимает на вход два строковых аргумента и возвращает true
, если первая строка начинается второй и false
в противном случае.
starts-with('http://www.xsltdev.ru', 'http')
→ true
starts-with('Title', 'ti')
→ false
boolean contains( string , string )
Функция contains
принимает на вход два строковых аргумента и возвращает true
, если первая строка содержит вторую и false
в противном случае.
contains('address@host.com', '(@')
→ true
string substring-before( string , string )
Функция 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', '-')
→ ''
string substring-after( string , string )
Эта функция аналогична функции 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', '-')
→ ''
string substring( string , number , number ?)
Функция 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)
→ ''
number string-length( string ?)
Функция string-length
возвращает число символов строкового аргумента. Если аргумент опущен, string-length
возвращает длину строкового представления контекстного узла.
Напомним, что длина строки не имеет ничего общего с количеством байт, которое требуется для ее представления. Разные формы кодирования используют разное количество байт для записи символов, внутренние представления строк также могут быть различными, но длина строки в любом случае — это число символов, которые ее составляют.
Примеры
string-length('Barnes and Noble')
→ 16
string-length('Barness#x20;& Noble')
→ 14
string normalize-space( string ?)
Функция normalize-space
производит со своим строковым аргументом так называемую нормализацию пробельного пространства. Это означает, что в строке удаляются ведущие и заключающие пробельные символы, а все последовательности пробелов заменяются одним пробельным символом. Иными словами, функция удаляет "лишние" пробелы в строке.
Если аргумент функции опущен, она выполняется со строковым значением контекстного узла.
Читать дальше