Последние учебники веб-разработки
 

XSLT XPath и XQuery Функции


XSLT 2.0, XPath 2.0 и XQuery 1.0, одни и те же функции библиотеки.


Функции Ссылка

по умолчанию префикс для функции имен является сноска:
URI функции пространства имен: http://www.w3.org/2005/xpath-functions

Tip: Функции часто называют с Fn: префикс, например, Fn: string() . Однако, так как Fn: это по умолчанию префикс пространства имен, имена функций не должны иметь префикс при вызове.

Функции Accessor

имя Описание
fn:node- name( node ) Возвращает имя-узла узла аргумента
fn: nilled( node ) Возвращает логическое значение, указывающее, является ли nilled узел аргумента
fn: data( item.item,... ) Принимает последовательность элементов и возвращает последовательность атомарных значений
fn:base- uri()
fn:base- uri( node )
Возвращает значение базового URI-свойства текущего или указанного узла
fn:document- uri( node ) Возвращает значение документа-URI имущества для указанного узла

Сообщения об ошибках и трассировке Функция

имя Описание
fn: error()
fn: error( error )
fn: error( error,description )
fn: error( error,description,error-object )
Пример: error(fn:QName('http://example.com/test', 'err:toohigh') , 'Ошибка: Цена слишком высока')

Результат: Возвращает http://example.com/test#toohigh и строка "Error: Price is too high" к внешней среде обработки

fn: trace( value,label ) Используется для отладки запросов

Функции по числовым значениям

имя Описание
fn: number( arg ) Возвращает числовое значение аргумента. Аргумент может быть логическое значение, строка или набор узлов

Пример: number('100')
Результат: 100

fn: abs( num ) Возвращает абсолютное значение аргумента

Пример: abs(3.14)
Результат: 3,14

Пример: abs(-3.14)
Результат: 3,14

fn: ceiling( num ) Возвращает наименьшее целое число, которое больше, чем число аргументов

Пример: ceiling(3.14)
Результат: 4

fn: floor( num ) Возвращает наибольшее целое число, которое не больше, чем число аргументов

Пример: floor(3.14)
Результат: 3

fn: round( num ) Округляет число аргумент до ближайшего целого числа

Пример: round(3.14)
Результат: 3

fn:round-half-to- even() Пример: круглые половины-to even(0.5)
Результат: 0

Пример: круглые половины-to even(1.5)
Результат: 2

Пример: круглый тайм-to even(2.5)
Результат: 2

Функции на струнных

имя Описание
fn: string( arg ) Возвращает строковое значение аргумента. Аргумент может быть число, логическое значение, или набор узлов

Пример: string(314)
Результат: "314"

fn:codepoints-to- string(( int,int,... ) ) Создает строку из последовательности точек Unicode стандартного кода

Пример: кодовые-to - string((84, 104, 233, 114, 232, 115, 101) )
Результат: 'Thrse'

fn:string-to- codepoints( string ) Возвращает последовательность стандартных кодовых точек Unicode из строки

Пример: строка-to - codepoints("Th r se")
Результат: (84, 104, 233, 114, 232, 115, 101)

fn:codepoint- equal( comp1,comp2 ) Возвращает истину , если значение comp1 равно значению comp2, в соответствии с кодом точки сортировки Unicode (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , в противном случае она возвращает ложь
fn: compare( comp1,comp2 )
fn: compare( comp1,comp2,collation )
Возвращает -1, если comp1 меньше comp2, 0, если comp1 равно comp2, или 1, если comp1 больше, чем comp2 (в соответствии с правилами сортировки, который используется)

Пример: compare('ghi', 'ghi')
Результат: 0

fn: concat( string,string,... ) Возвращает конкатенацию строк

Пример: concat('XPath ','is ','FUN!')
Результат: "XPath является FUN!

fn:string- join( (string,string,...) ,sep) Возвращает строку, созданную путем конкатенации строковых аргументов и используя SEP аргумента в качестве разделителя

Пример: string- join(('We', 'are', 'having', 'fun!') , ' «)
Результат: "Мы с удовольствием! '

Пример: string- join(('We', 'are', 'having', 'fun!') )
Результат: 'Wearehavingfun!

Пример: string- join(() к join(() , '') сен
Результат: «»

fn: substring( string,start,len )
fn: substring( string,start )
Возвращает подстроку из позиции до заданной длины. Индекс первого символа равен 1. Если длина опущена она возвращает подстроку от начальной позиции до конца

Пример: substring('Beatles',1,4)
Результат: «Удар»

Пример: substring('Beatles',2)
Результат: '' eatles

fn:string- length( string )
fn:string- length()
Возвращает длину указанной строки. Если нет строки аргумента он возвращает длину строкового значения текущего узла

Пример: string- length('Beatles')
Результат: 7

fn:normalize- space( string )
fn:normalize- space()
Удаляет начальные и конечные пробелы из указанной строки, и заменяет все внутренние последовательности белого пространства с одним и возвращает результат. Если нет строки аргумента он делает то же самое на текущем узле

Пример: normalize- space(' The XML ') - space(' The XML ')
Результат: 'The XML'

fn:normalize- unicode()
fn:upper- case( string ) Преобразует строку аргумента в верхний регистр

Пример: прописной case('The XML') - case('The XML')
Результат: «XML-»

fn:lower- case( string ) Преобразует строковый аргумент в нижний регистр

Пример: низший case('The XML') - case('The XML')
Результат: «XML-»

fn: translate( string1,string2,string3 ) Преобразует строку1 путем замены символов в ТАБЛИЦЕ2 с персонажами в string3

Пример: translate('12:30','30','45')
Результат: '12: 45'

Пример: translate('12:30','03','54')
Результат: '12: 45'

Пример: translate('12:30','0123','abcd')
Результат: «Ьс: да»

fn:escape- uri( stringURI,esc-res ) Пример: escape- uri("http://example.com/test#car", true() )
Результат: "http%3A%2F%2Fexample.com%2Ftest#car"

Пример: escape- uri("http://example.com/test#car", false() )
Результат: "http://example.com/test#car"

Пример: бежать-URI ("http://example.com/~b b ", false() )
Результат: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) Возвращает истину, если string1 содержит string2, в противном случае она возвращает ложь

Пример: contains('XML','XM')
Результат: истинный

fn:starts- with( string1,string2 ) Возвращает истину, если string1 начинается с строке2, в противном случае она возвращает ложь

Пример: starts- with('XML','X')
Результат: истинный

fn:ends- with( string1,string2 ) Возвращает истину, если string1 заканчивается строке2, в противном случае она возвращает ложь

Пример: ends- with('XML','X')
Результат: ложь

fn:substring- before( string1,string2 ) Возвращает начало string1 перед тем строка2 происходит в нем

Пример: substring- before('12/10','/')
Результат: '12'

fn:substring- after( string1,string2 ) Возвращает остаток от string1 после строка2 происходит в нем

Пример: substring- after('12/10','/') того, как after('12/10','/')
Результат: '10'

fn: matches( string,pattern ) Возвращает истину, если аргумент строка соответствует шаблону, в противном случае она возвращает ложь

Пример: matches("Merano", "ran")
Результат: истинный

fn: replace( string,pattern,replace ) Возвращает строку, которая создается путем замены заданного шаблона с заменой аргументом

Пример: replace("Bella Italia", "l" , "*")
Результат: 'Be ** Ita * Ia'

Пример: replace("Bella Italia", "l" , "")
Результат: «Беа Itaia»

fn: tokenize( string,pattern ) Пример: tokenize("XPath is fun", "\s+")
Результат: ("XPath", "is" , "fun")

Функции anyURI

имя Описание
fn:resolve- uri( relative,base )

Функции на булевых значений

имя Описание
fn: boolean( arg ) Возвращает логическое значение для числа, строки или набора узлов
fn: not( arg ) Аргумент сначала восстанавливают к логическому значению, применяя boolean() функцию. Возвращает истину, если логическое значение ложно, и ложно, если логическое значение истинно

Пример: not(true() )
Результат: ложь

fn: true() Возвращает логическое значение, правда,

Пример: true()
Результат: истинный

fn: false() Возвращает логическое значение ложь

Пример: false()
Результат: ложь

Функции по длительностям, дате и времени

Компонент Функция экстракционного длительностей, дата и время

имя Описание
fn: dateTime( date,time ) Преобразует аргументы даты и времени
fn:years-from- duration( datetimedur ) Возвращает целое число, представляющее компонент лет в канонической лексической репрезентации значения аргумента
fn:months-from- duration( datetimedur ) Возвращает целое число, представляющее компонент месяца в канонической лексической репрезентации значения аргумента
fn:days-from- duration( datetimedur ) Возвращает целое число, представляющее компонент дней в канонической лексической репрезентации значения аргумента
fn:hours-from- duration( datetimedur ) Возвращает целое число, представляющий компонент часов в каноническом лексическом представлении значения аргумента
fn:minutes-from- duration( datetimedur ) Возвращает целое число, представляющий компонент минут в каноническом лексическом представлении значения аргумента
fn:seconds-from- duration( datetimedur ) Возвращает десятичный, представляющий компонент секунд в канонической лексической репрезентации значения аргумента
fn:year-from- dateTime( datetime ) Возвращает целое число, представляющее компонент года в локализованной значении аргумента

Пример: год-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Результат: 2005

fn:month-from- dateTime( datetime ) Возвращает целое число, представляющее месяц компонент в локализованной значении аргумента

Пример: месяц-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Результат: 01

fn:day-from- dateTime( datetime ) Возвращает целое число, представляющий компонент дня в локализованном значении аргумента

Пример: день from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Результат: 10

fn:hours-from- dateTime( datetime ) Возвращает целое число, представляющий компонент часов в локализованном значении аргумента

Пример: часы-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Результат: 12

fn:minutes-from- dateTime( datetime ) Возвращает целое число, представляющий компонент минут в локализованном значении аргумента

Пример: мин-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Результат: 30

fn:seconds-from- dateTime( datetime ) Возвращает десятичный, представляющий компонент секунд в локализованном значении аргумента

Пример: секунды-from- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") )
Результат: 0

fn:timezone-from- dateTime( datetime ) Возвращает компонент часового пояса аргумента, если какой-либо
fn:year-from- date( date ) Возвращает целое число, представляющее год в локализованном значении аргумента

Пример: год-from- date(xs:date("2005-04-23") )
Результат: 2005

fn:month-from- date( date ) Возвращает целое число, представляющее месяц в локализованном значении аргумента

Пример: месяц-from- date(xs:date("2005-04-23") )
Результат: 4

fn:day-from- date( date ) Возвращает целое число, представляющее день в локализованной значении аргумента

Пример: день from- date(xs:date("2005-04-23") )
Результат: 23

fn:timezone-from- date( date ) Возвращает компонент часового пояса аргумента, если какой-либо
fn:hours-from- time( time ) Возвращает целое число, представляющий компонент часов в локализованном значении аргумента

Пример: часы-from- time(xs:time("10:22:00") )
Результат: 10

fn:minutes-from- time( time ) Возвращает целое число, представляющий компонент минут в локализованном значении аргумента

Пример: мин-from- time(xs:time("10:22:00") )
Результат: 22

fn:seconds-from- time( time ) Возвращает целое число, представляющее компонент секунд в локализованной значении аргумента

Пример: секунды-from- time(xs:time("10:22:00") )
Результат: 0

fn:timezone-from- time( time ) Возвращает компонент часового пояса аргумента, если какой-либо
fn:adjust-dateTime-to- timezone( datetime,timezone ) Если часовой пояс аргумент пуст, он возвращает DATETIME без временной зоны. В противном случае она возвращает DATETIME с часовым поясом
fn:adjust-date-to- timezone( date ,timezone ) Если часовой пояс аргумент пуст, он возвращает дату без временной зоны. В противном случае она возвращает дату с часовым поясом
fn:adjust-time-to- timezone( time ,timezone ) Если часовой пояс аргумент пустой, то возвращает время без часового пояса. В противном случае она возвращает время с часовым поясом

Функции , связанные с QNames

имя Описание
fn: QName()
fn:local-name-from- QName()
fn:namespace-uri-from- QName()
fn:namespace-uri-for- prefix()
fn:in-scope- prefixes()
fn:resolve- QName()

Функции по Узлам

имя Описание
fn: name()
fn: name( nodeset )
Возвращает имя текущего узла или первого узла в указанном наборе узлов
fn:local- name()
fn:local- name( nodeset )
Возвращает имя текущего узла или первого узла в указанном множестве узлов - без префикса пространства имен
fn:namespace- uri()
fn:namespace- uri( nodeset )
Возвращает URI пространства имен текущего узла или первый узел в указанном наборе узлов
fn: lang( lang ) Возвращает истину, если язык текущего узла совпадает с языком указанного языка

Пример: Lang("en") верно для
<Р XML: LANG = "EN"> ... </ p>

Пример: Lang("de") ложно для
<Р XML: LANG = "EN"> ... </ p>

fn: root()
fn: root( node )
Возвращает корень дерева, которому принадлежит текущий узел или указанный. Это, как правило, является узлом документа

Функции по последовательностям

Общие функции на последовательностях

имя Описание
fn:index- of( (item,item,...) ,searchitem) Возвращает позиции в последовательности элементов, которые равны searchitem аргумента

Пример: индекс-на ((15, 40, 25, 40, 10) , 40)
Результат: (2, 4)

Пример: индекс-на (("a", "dog" , "and" , "a" , "duck") , "а")
Результат (1, 4)

Пример: индекс-на ((15, 40, 25, 40, 10) , 18)
Результат: ()

fn: remove( (item,item,...) ,position) Возвращает новую последовательность, построенную из значения аргументов элементов - с позиции, указанной в позиции аргумента удалены

Пример: remove(("ab", "cd" , "ef") , 0)
Результат: ("ab", "cd" , "ef")

Пример: remove(("ab", "cd" , "ef") , 1)
Результат: ("cd", "ef")

Пример: remove(("ab", "cd" , "ef") , 4)
Результат: ("ab", "cd" , "ef")

fn: empty( item,item,... ) Возвращает истину, если значение аргументов пустая последовательность, в противном случае она возвращает ложь

Пример: empty(remove(("ab", "cd") , 1))
Результат: ложь

fn: exists( item,item,... ) Возвращает истину, если значение этих аргументов не пустая последовательность, в противном случае она возвращает ложь

Пример: exists(remove(("ab") , 1))
Результат: ложь

fn:distinct- values( (item,item,...) ,collation) Возвращает только отдельные (different) значения

Пример: distinct- values((1, 2, 3, 1, 2) )
Результат: (1, 2, 3)

fn:insert- before( (item,item,...) ,pos,inserts) Возвращает новую последовательность, построенную из значения аргументов элементов - со значением аргумента вставки, вставленным в позиции, заданное аргумент поз

Пример: Вставка- before(("ab", "cd") , 0, "GH")
Результат: ("gh", "ab" , "cd")

Пример: Вставка- before(("ab", "cd") , 1, "GH")
Результат: ("gh", "ab" , "cd")

Пример: Вставка- before(("ab", "cd") , 2, "GH")
Результат: ("ab", "gh" , "cd")

Пример: Вставка- before(("ab", "cd") , 5, "GH")
Результат: ("ab", "cd" , "gh")

fn: reverse( (item,item,...) ) Возвращает обращенную порядок элементов, указанных

Пример: reverse(("ab", "cd" , "ef") )
Результат: ("ef", "cd" , "ab")

Пример: reverse(("ab") )
Результат: ("ab")

fn: subsequence( (item,item,...) ,start,len) Возвращает последовательность элементов из положения, заданного начального аргументом и продолжением для количества элементов, указанного лен аргументом. Первый элемент расположен в положении 1

Пример: subsequence(($item1, $item2, $item3,...) , 3)
Результат: ($item3, ...)

Пример: subsequence(($item1, $item2, $item3, ...) , 2, 2)
Результат: ($item2, $item3)

fn: unordered( (item,item,...) ) Возвращает элементы в зависимости от реализации заказа

Функции, которые проверяют Континуальность последовательностей

имя Описание
fn:zero-or- one( item,item,... ) Возвращает аргумент, если он содержит ноль или один элементы, в противном случае возникает ошибка
fn:one-or- more( item,item,... ) Возвращает аргумент, если он содержит один или несколько элементов, в противном случае возникает ошибка
fn:exactly- one( item,item,... ) Возвращает аргумент, если он содержит ровно один элемент, в противном случае возникает ошибка

Равно, объединение, пересечение и, кроме

имя Описание
fn:deep- equal( param1,param2,collation ) Возвращает истину, если param1 и param2 имеют глубокие равны друг другу, в противном случае она возвращает ложь

Агрегатные функции

имя Описание
fn: count( (item,item,...) ) Возвращает количество узлов
fn: avg( (arg,arg,...) ) Возвращает среднее значение аргумента

Пример: avg((1,2,3) )
Результат: 2

fn: max( (arg,arg,...) ) Возвращает аргумент, который больше, чем другие

Пример: max((1,2,3) )
Результат: 3

Пример: max(('a', 'k') )
Результат: «А»

fn: min( (arg,arg,...) ) Возвращает аргумент, который меньше, чем другие

Пример: min((1,2,3) )
Результат: 1

Пример: min(('a', 'k') )
Результат: «а»

fn: sum( arg,arg,... ) Возвращает сумму числового значения каждого узла в указанном множестве узлов

Функции, которые порождают последовательности

имя Описание
fn: id( (string,string,...) ,node) Возвращает последовательность узлов элементов, имеющих значение идентификатора, равную стоимости одного или нескольких из значений, указанных в строке аргумента
fn: idref( (string,string,...) ,node) Возвращает последовательность элемента или атрибута узлов, которые имеют значение IDREF, равную стоимости одного или нескольких из значений, указанных в строке аргумента
fn: doc( URI )
fn:doc- available( URI ) Возвращает истину , если doc() функция возвращает узел документа, в противном случае она возвращает ложь
fn: collection()
fn: collection( string )

Функции контекста

имя Описание
fn: position() Возвращает индекс позиции узла, который в настоящее время обрабатывается

Пример: // книга [ position() <= 3]
Результат: Выбор первых трех книг элементы

fn: last() Возвращает количество элементов в списке обрабатываемого узла

Пример: // книга [ last() ]
Результат: Выбор последнего элемента книги

fn:current- dateTime() Возвращает текущую DATETIME (with timezone)
fn:current- date() Возвращает текущую дату (with timezone)
fn:current- time() Возвращает текущее время (with timezone)
fn:implicit- timezone() Возвращает значение неявного часового пояса
fn:default- collation() Возвращает значение сортировки по умолчанию
fn:static-base- uri() Возвращает значение базового URI

Функции XSLT

Кроме того, имеются следующие встроенные функции XSLT:

имя Описание
current() Возвращает текущий узел
document() Используется для доступа к узлам во внешнем документе XML
element- available() Тесты ли элемент, указанный поддерживается процессором XSLT
format- number() Преобразует число в строку
function- available() Тесты ли функция, заданная поддерживается процессором XSLT
generate- id() Возвращает строковое значение, которое однозначно идентифицирует указанный узел
key() Возвращает набор узлов , используя индекс , указанный с помощью <xsl:key> элемента
system- property() Возвращает значение свойств системы
unparsed-entity- uri() Возвращает URI неанализируемого объекта