Инструменты пользователя

Инструменты сайта


xml_xpath

Назад

Документация
Документация

XPath (XML Path Language) — язык запросов к элементам XML-документа. Разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML.

Выражения

XPath вырождения похожи на путь к файлам /pricelist/book/title

  • / - абсолютный путь
  • / / - поиск элемента на любой глубине (работает медленней чем абсолютный путь)
  • * - Любой элемент

Предикаты

Предикаты позволяют Вырождение может иметь предикаты [ ]

  • Фильтрация
    • Положения узла product[last()]
    • Содержимое узла product[@id=10]
    • Присутствие узла product[@id]
  • Несколько предикатов
    • Вычисление начинается слева на право product[3][@id]

Оси

Оси служат для определения набора узлов относительно данного узла.

Имя Описание
self сам узел
child Дочерние узлы
parent Родительский узел
descendant Потомки узла
descendant-or-self Узел и его потомки
ancestor Предки узла
ancestor-or-self Сам узел и его предки
following Все узлы после данного
following-sibling Все узлы этого же уровня после данного
preceding Все узлы перед данным
preceding-sibling Все узлы этого же уровня перед данным
attribute Узлы аттрибутов
namespace Узлы пространства имен

Выражения

Булевы Выражения

Оператор Описание Пример Результат
or или price=9.80 or price=9.70 'истина' (если price равно 9.80)
and и price⇐9.80 and price=9.70 'ложь'

Операции Сравнения

Оператор Описание Пример Результат
< Меньше price<9.80 'ложь' (если price равно 9.80)
Меньше или равно price⇐9.80 'истина'
> Больше price>9.80 'ложь'
>= Меньше или равно price>=9.80 'истина'
= Равно price=9.80 'истина' (если значение price равно 9.80)
!= Не равно price!=9.80 'ложь'

Числовые Выражения

Оператор Описание Пример Результат
+ Сложение 6 + 4 10
- Вычитание 6 - 4 2
* Умножение 6 * 4 24
div Деление 8 div 4 2
mod Остаток от деления 5 mod 2 1

Функции

Числовые

ИмяОписаниеПримерРезультат
round Округляет до ближайшего целого. round(3.14)3
ceiling Округляет до ближайшего целого, которое больше данного. ceiling(3.14) 4
floor Округляет до ближайшего целого, которое меньше данного. floor(3.14) 3
count Возвращает количество узлов. count(nodeset) количество узлов в множестве узлов
number Преобразует аргумент в число. number(price) Численное значение элемента price
sum Возвращает сумму списка чисел. sum(/cd/price) Суммарная цена всех CD

Bool

ИмяОписаниеПримерРезультат
booleanПреобразует аргумент к булевому типу. boolean(3.14)'истина', если price не равен нулю
falseВовращает 'ложь'. number(false()) 0
trueВозвращает 'истину'. number(true()) 1
notВозвращает отрицание. not(false()) 'истина'

Строковые

Имя Описание Пример Результат
string Преобразует аргумент в строку. string(3.14)'3,14'
string-lengthВозвращает длину строки.string-lenght('Beatles')7
substringВозвращает подстроку.substring('Beatles',1,4)'Beat'
substring-afterВозвращает остаток строки после второго аргумента.substring-after('12:30',':')'30'
substring-beforeВозвращает часть строки перед вторым аргументом.substring-before('12:30',':')'12'
containsВозвращает 'истину', если первая строка содержит вторую.contains('XML','X')'истина'
starts-withВозвращает 'истину', если первая строка начинается второй.starts-with('XML','X')'истина'
concatВозвращает конкатенацию двух строк.concat('The',' ','Beatles')'The Beatles'
normalize-spaceУдаляет лишние пробелы в строке.normalize-space(' The Beatles')'The Beatles'
translateЗаменяет символы в строке.translate('12:30',':','.')'12.30'

Множества

ФункцияОписание
countВозвращает число узлов в аргументе с набором узлов.
idВыбирает элементы по их уникальному идентификатору.
lastВозвращает размер контекста вычисления выражений.
local-nameВозвращает локальную часть развернутого имени узла в аргументе с набором узлов, упомянутого первым в документе.
nameВозвращает строку, содержащую имя QName, которое представляет развернутое имя узла в аргументе с набором узлов, расположенном в документе первым.
namespace-uriВозвращает URI-код пространства имен для расширенного имени узла в аргументе с набором узлов, расположенном в документе первым.
positionВозвращает номер индекса узла в пределах родительского узла.