XPath 3 - это последняя версия XML Path Language, языка запросов для выбора узлов в XML документы. Он заменяет XPath 1.0 и XPath 2.0.
XPath 3.0 стал Рекомендацией W3C 8 апреля 2014 года, а XPath 3.1 стал Рекомендация W3C от 21 марта 2017 г.
По сравнению с XPath 2.0 в XPath 3.0 добавлены следующие новые функции:
function ($ a as xs: double, $ b as xs: double) as xs: double {$ a * $ b}
создает функцию, которая возвращает произведение двух своих аргументов. Выражение collection () / (let $ a: =. Return function () {$ a})
создает последовательность функций, каждая из которых возвращает отдельный узел из коллекции.$ f [2] («Привет!»)
выбирает второй элемент из последовательности $ f
и вызывает его как функцию, передавая строку «Привет там "
в качестве аргумента.math: pi
может быть расширено до Q {http://www.w3.org/2005/xpath-functions/math} pi
, включая пространство имен URI внутри префикса.||
может использоваться для конкатенации строк : $ a || $ b
эквивалентно fn: concat ($ a, $ b)
.!
выполняет простое сопоставление: E1 ! E2
оценивает E2
для каждого элемента в последовательности E1
и объединяет полученные элементы. Это сравнимо с оператором пути /
, но оператор !
не выполняет удаление дубликатов и упорядочение результатов в документах.XPath 3.1 в основном добавляет поддержку типов данных массив и карта (ассоциативный массив ). Эти типы и связанные с ними функции предназначены для облегчения работы с данными JSON.
Еще одно нововведение - оператор стрелки =>
для объединения функций. Например, выражение XPath 2.0
содержит (верхний регистр (substring-before ($ in, '')), 'X')
теперь может быть записано
$ in =>substring-before ( '') =>верхний регистр () =>содержит ('X')
.