Содержание

XPATH

Оси

Оси — это база языка XPath. Для некоторых осей существуют сокращённые обозначения.

Функции над множествами узлов

Функция Описание
node-set node() Возвращает сам узел. Вместо этой функции часто используют заменитель *, но, в отличие от звёздочки, функция node() возвращает и текстовые узлы
string text() Возвращает узел, если он текстовый
node-set current() Возвращает множество из одного элемента, который является текущим. Если мы делаем обработку множества с предикатами, то единственным способом дотянуться из этого предиката до текущего элемента будет данная функция
number position() Возвращает позицию элемента в множестве элементов оси. Корректно работает только в цикле <xsl:for-each/>
number last() Возвращает номер последнего элемента в множестве элементов оси. Корректно работает только в цикле <xsl:for-each/>
number count(node-set) Возвращает количество элементов в node-set.
string name(node-set?) Возвращает полное имя первого тега в множестве
string namespace-url(node-set?) Возвращает ссылку на URL, определяющий пространство имён
string local-name(node-set?) Возвращает имя первого тега в множестве, без пространства имён
node-set id(object) Находит элемент с уникальным идентификатором

Строковые функции

Функция Описание
string string(object?) Возвращает текстовое содержимое элемента. По сути, возвращает объединённое множество текстовых элементов на один уровень ниже
string concat(string, string, string*) Соединяет строки, указанные в аргументах
number string-length(string?) Возвращает длину строки
boolean contains(string, string) Возвращает true, если первая строка содержит вторую, иначе — false
string substring(string, number, number?) Возвращает строку, вырезанную из строки, начиная с указанного номера, и, если указан второй номер, — количество символов
string substring-before(string, string) Если найдена вторая строка в первой, возвращает строку до первого вхождения второй строки
string substring-after(string, string) Если найдена вторая строка в первой, возвращает строку после первого вхождения второй строки
boolean starts-with(string, string) Возвращает true, если вторая строка входит в начало первой, иначе — false
boolean ends-with(string, string) Возвращает true, если вторая строка входит в конец первой, иначе — false
string normalize-space(string?) Убирает лишние и повторные пробелы, а также управляющие символы, заменяя их пробелами
string translate(string, string, string) Заменяет символы первой строки, которые встречаются во второй строке, на соответствующие позиции символам из второй строки символы из третьей строки. Например, translate("bar", "abc", "ABC") вернёт BAr.

Логические функции и операторы

Символ, оператор Значение
or
логическое «или»
and
логическое «и»
=
логическое «равно»
< (&lt;)
логическое «меньше»
> (&gt;)
логическое «больше»
<= (&lt;=)
логическое «меньше либо равно»
>= (&gt;=)
логическое «больше либо равно»
Функция Описание
boolean boolean(object) Приводит объект к логическому типу
boolean true() Возвращает истину
boolean false() Возвращает ложь
boolean not(boolean)

Числовые функции и операторы

Символ, оператор Значение
+ сложение
вычитание
* умножение
div обычное деление (не нацело!)
mod остаток от деления
Функция Описание
number number(object?) Переводит объект в число
number sum(node-set) Вернёт сумму множества. Каждый тег множества будет преобразован в строку и из него получено число
number floor(number) Возвращает наибольшее целое число, не большее, чем аргумент (округление к меньшему)
number ceiling(number) Возвращает наименьшее целое число, не меньшее, чем аргумент (округление к большему)
number round(number) Округляет число по математическим правилам

Системные функции

Функция Описание
node-set document(object, node-set?) Возвращает документ, указанный в параметре object
string format-number(number, string, string?) Форматирует число согласно образцу, указанному во втором параметре. Третий параметр указывает именованный формат числа, который должен быть учтён
string generate-id(node-set?) Возвращает строку, являющуюся уникальным идентификатором
node-set key(string, object) Возвращает множество с указанным ключом (аналогично функции id для идентификаторов)
string unparsed-entity-uri(string) Возвращает непроанализированный URI. Если такового нет, возвращает пустую строку
boolean element-available(string) Проверяет, доступен ли элемент или множество, указанное в параметре. Параметр рассматривается как XPath
boolean function-available(string) Проверяет, доступна ли функция, указанная в параметре. Параметр рассматривается как XPath
object system-property(string) Параметры, возвращающие системные переменные. Могут быть:
xsl: version — возвращает версию XSLT процессора.
xsl: vendor — возвращает производителя XSLT процессора.
xsl: vendor-url — возвращает URL, идентифицирующий производителя. Если используется неизвестный параметр, функция возвращает пустую строку
boolean lang(string) Возвращает true, если у текущего тега имеется атрибут xml: lang, либо родитель тега имеет атрибут xml: lang и в нём указан совпадающий строке символ