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') |
fn: abs( num ) | Возвращает абсолютное значение аргумента Пример: abs(3.14) Пример: abs(-3.14) |
fn: ceiling( num ) | Возвращает наименьшее целое число, которое больше, чем число аргументов Пример: ceiling(3.14) |
fn: floor( num ) | Возвращает наибольшее целое число, которое не больше, чем число аргументов Пример: floor(3.14) |
fn: round( num ) | Округляет число аргумент до ближайшего целого числа Пример: round(3.14) |
fn:round-half-to- even() | Пример: круглые половины-to even(0.5) Результат: 0 Пример: круглые половины-to even(1.5) Пример: круглый тайм-to even(2.5) |
Функции на струнных
имя | Описание |
---|---|
fn: string( arg ) | Возвращает строковое значение аргумента. Аргумент может быть число, логическое значение, или набор узлов Пример: string(314) |
fn:codepoints-to- string(( int,int,... ) ) | Создает строку из последовательности точек Unicode стандартного кода Пример: кодовые-to - string((84, 104, 233, 114, 232, 115, 101) ) |
fn:string-to- codepoints( string ) | Возвращает последовательность стандартных кодовых точек Unicode из строки Пример: строка-to - codepoints("Th r se") |
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') |
fn: concat( string,string,... ) | Возвращает конкатенацию строк Пример: concat('XPath ','is ','FUN!') |
fn:string- join( (string,string,...) ,sep) | Возвращает строку, созданную путем конкатенации строковых аргументов и используя SEP аргумента в качестве разделителя Пример: string- join(('We', 'are', 'having', 'fun!') , ' «) Пример: string- join(('We', 'are', 'having', 'fun!') ) Пример: string- join(() к join(() , '') сен |
fn: substring( string,start,len ) fn: substring( string,start ) | Возвращает подстроку из позиции до заданной длины. Индекс первого символа равен 1. Если длина опущена она возвращает подстроку от начальной позиции до конца Пример: substring('Beatles',1,4) Пример: substring('Beatles',2) |
fn:string- length( string ) fn:string- length() | Возвращает длину указанной строки. Если нет строки аргумента он возвращает длину строкового значения текущего узла Пример: string- length('Beatles') |
fn:normalize- space( string ) fn:normalize- space() | Удаляет начальные и конечные пробелы из указанной строки, и заменяет все внутренние последовательности белого пространства с одним и возвращает результат. Если нет строки аргумента он делает то же самое на текущем узле Пример: normalize- space(' The XML ') - space(' The XML ') |
fn:normalize- unicode() | |
fn:upper- case( string ) | Преобразует строку аргумента в верхний регистр Пример: прописной case('The XML') - case('The XML') |
fn:lower- case( string ) | Преобразует строковый аргумент в нижний регистр Пример: низший case('The XML') - case('The XML') |
fn: translate( string1,string2,string3 ) | Преобразует строку1 путем замены символов в ТАБЛИЦЕ2 с персонажами в string3 Пример: translate('12:30','30','45') Пример: translate('12:30','03','54') Пример: 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() ) Пример: бежать-URI ("http://example.com/~b b ", false() ) |
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','/') |
fn:substring- after( string1,string2 ) | Возвращает остаток от string1 после строка2 происходит в нем Пример: substring- after('12/10','/') того, как after('12/10','/') |
fn: matches( string,pattern ) | Возвращает истину, если аргумент строка соответствует шаблону, в противном случае она возвращает ложь Пример: matches("Merano", "ran") |
fn: replace( string,pattern,replace ) | Возвращает строку, которая создается путем замены заданного шаблона с заменой аргументом Пример: replace("Bella Italia", "l" , "*") Пример: replace("Bella Italia", "l" , "") |
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") ) |
fn:month-from- dateTime( datetime ) | Возвращает целое число, представляющее месяц компонент в локализованной значении аргумента Пример: месяц-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:day-from- dateTime( datetime ) | Возвращает целое число, представляющий компонент дня в локализованном значении аргумента Пример: день from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:hours-from- dateTime( datetime ) | Возвращает целое число, представляющий компонент часов в локализованном значении аргумента Пример: часы-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:minutes-from- dateTime( datetime ) | Возвращает целое число, представляющий компонент минут в локализованном значении аргумента Пример: мин-from- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:seconds-from- dateTime( datetime ) | Возвращает десятичный, представляющий компонент секунд в локализованном значении аргумента Пример: секунды-from- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") ) |
fn:timezone-from- dateTime( datetime ) | Возвращает компонент часового пояса аргумента, если какой-либо |
fn:year-from- date( date ) | Возвращает целое число, представляющее год в локализованном значении аргумента Пример: год-from- date(xs:date("2005-04-23") ) |
fn:month-from- date( date ) | Возвращает целое число, представляющее месяц в локализованном значении аргумента Пример: месяц-from- date(xs:date("2005-04-23") ) |
fn:day-from- date( date ) | Возвращает целое число, представляющее день в локализованной значении аргумента Пример: день from- date(xs:date("2005-04-23") ) |
fn:timezone-from- date( date ) | Возвращает компонент часового пояса аргумента, если какой-либо |
fn:hours-from- time( time ) | Возвращает целое число, представляющий компонент часов в локализованном значении аргумента Пример: часы-from- time(xs:time("10:22:00") ) |
fn:minutes-from- time( time ) | Возвращает целое число, представляющий компонент минут в локализованном значении аргумента Пример: мин-from- time(xs:time("10:22:00") ) |
fn:seconds-from- time( time ) | Возвращает целое число, представляющее компонент секунд в локализованной значении аргумента Пример: секунды-from- time(xs:time("10:22:00") ) |
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") верно для Пример: Lang("de") ложно для |
fn: root() fn: root( node ) | Возвращает корень дерева, которому принадлежит текущий узел или указанный. Это, как правило, является узлом документа |
Функции по последовательностям
Общие функции на последовательностях
имя | Описание |
---|---|
fn:index- of( (item,item,...) ,searchitem) | Возвращает позиции в последовательности элементов, которые равны searchitem аргумента Пример: индекс-на ((15, 40, 25, 40, 10) , 40) Пример: индекс-на (("a", "dog" , "and" , "a" , "duck") , "а") Пример: индекс-на ((15, 40, 25, 40, 10) , 18) |
fn: remove( (item,item,...) ,position) | Возвращает новую последовательность, построенную из значения аргументов элементов - с позиции, указанной в позиции аргумента удалены Пример: remove(("ab", "cd" , "ef") , 0) Пример: remove(("ab", "cd" , "ef") , 1) Пример: remove(("ab", "cd" , "ef") , 4) |
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) ) |
fn:insert- before( (item,item,...) ,pos,inserts) | Возвращает новую последовательность, построенную из значения аргументов элементов - со значением аргумента вставки, вставленным в позиции, заданное аргумент поз Пример: Вставка- before(("ab", "cd") , 0, "GH") Пример: Вставка- before(("ab", "cd") , 1, "GH") Пример: Вставка- before(("ab", "cd") , 2, "GH") Пример: Вставка- before(("ab", "cd") , 5, "GH") |
fn: reverse( (item,item,...) ) | Возвращает обращенную порядок элементов, указанных Пример: reverse(("ab", "cd" , "ef") ) Пример: reverse(("ab") ) |
fn: subsequence( (item,item,...) ,start,len) | Возвращает последовательность элементов из положения, заданного начального аргументом и продолжением для количества элементов, указанного лен аргументом. Первый элемент расположен в положении 1 Пример: subsequence(($item1, $item2, $item3,...) , 3) Пример: subsequence(($item1, $item2, $item3, ...) , 2, 2) |
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) ) |
fn: max( (arg,arg,...) ) | Возвращает аргумент, который больше, чем другие Пример: max((1,2,3) ) Пример: max(('a', 'k') ) |
fn: min( (arg,arg,...) ) | Возвращает аргумент, который меньше, чем другие Пример: min((1,2,3) ) Пример: 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 неанализируемого объекта |