принимает на вход два строковых аргумента. Эта функция находит в первой строке вторую и возвращает подстроку, которая ей предшествует. Если вторая строка не содержится в первой, функция вернет пустую строку.
Примеры
substring-before('12-May-1998', '-')
→
'12'
substring-before('12 May 1998', ' ')
→
'12'
substring-before('12 May 1998', ' ')
→
'12'
substring-before('12 May 1998', '-')
→
''
Функция substring-after
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', '-')
→
''
Функция substring
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)
→
''
Функция string-length
number string-length(string?)
Функция
string-length
возвращает число символов строкового аргумента. Если аргумент опущен,
string-length
возвращает длину строкового представления контекстного узла.
Напомним, что длина строки не имеет ничего общего с количеством байт, которое требуется для ее представления. Разные формы кодирования используют разное количество байт для записи символов, внутренние представления строк также могут быть различными, но длина строки в любом случае — это число символов, которые ее составляют.