XPath, XQuery, and XSLT Functions
- Previous Page Summary of XPath
- Next Page XPath Tutorial
Access functions
Name | Description |
---|---|
fn:node-name(node) | Returns the node name of the argument node. |
fn:nilled(node) | Returns a boolean value indicating whether the argument node is refused. |
fn:data(item.item,...) | Accepts an item sequence and returns an atomic value sequence. |
|
Returns the value of the base-uri attribute of the current node or the specified node. |
fn:document-uri(node) | Returns the value of the document-uri attribute of the specified node. |
Error and trace functions
Name | Description |
---|---|
|
Example: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Result: Returns http://example.com/test#toohigh to the external processing environment along with the string "Error: Price is too high". |
fn:trace(value,label) | Used for debugging queries. |
Functions related to numbers
Name | Description |
---|---|
fn:number(arg) |
Returns the numeric value of the argument. The argument can be a boolean value, a string, or a node set. Example: number('100') Result: 100 |
fn:abs(num) |
Returns the absolute value of the argument. Example: abs(3.14) Result: 3.14 Example: abs(-3.14) Result: 3.14 |
fn:ceiling(num) |
Returns the smallest integer greater than the num parameter. Example: ceiling(3.14) Result: 4 |
fn:floor(num) |
Returns the largest integer not greater than the num parameter. Example: floor(3.14) Result: 3 |
fn:round(num) |
Rounds the num parameter to the nearest integer. Example: round(3.14) Result: 3 |
fn:round-half-to-even() |
Example: round-half-to-even(0.5) Result: 0 Example: round-half-to-even(1.5) Result: 2 Example: round-half-to-even(2.5) Result: 2 |
String functions
Name | Description |
---|---|
fn:string(arg) |
Returns the string value of the argument. The argument can be a number, a logical value, or a node set. Example: string(314) Result: "314" |
fn:codepoints-to-string(int,int,...) |
Returns a string from a sequence of code points. Example: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Result: 'Thérèse' |
fn:string-to-codepoints(string) |
Returns a sequence of code points from a string. Example: string-to-codepoints("Thérèse") Result: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | According to the Unicode code point comparison, if the value of comp1 is equal to the value of comp2, returns true. Otherwise, returns false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) |
|
If comp1 is less than comp2, returns -1. If comp1 is equal to comp2, returns 0. If comp1 is greater than comp2, returns 1. (According to the used comparison rules). Example: compare('ghi', 'ghi') Result: 0 |
fn:concat(string,string,...) |
Returns the concatenation of strings. Example: concat('XPath ','is ','FUN!') Result: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Uses the sep parameter as a separator to return the concatenated string of the string parameter. Example: string-join(('We', 'are', 'having', 'fun!'), ' ') Result: ' We are having fun! ' Example: string-join(('We', 'are', 'having', 'fun!')) Result: 'Wearehavingfun!' Example: string-join((), 'sep') Result: '' |
|
Returns a substring of the specified length starting from the start position. The index of the first character is 1. If the len parameter is omitted, it returns the substring from position start to the end of the string. Example: substring('Beatles',1,4) Result: 'Beat' Example: substring('Beatles',2) Result: 'eatles' |
|
Returns the length of the specified string. If no string parameter is provided, it returns the length of the string value of the current node. Example: string-length('Beatles') Result: 7 |
|
Removes leading and trailing whitespace from the specified string, replaces all internal sequences of whitespace with a single space, and then returns the result. If no string parameter is provided, it processes the current node. Example: normalize-space(' The XML ') Result: 'The XML' |
fn:normalize-unicode() | Executes Unicode normalization. |
fn:upper-case(string) |
Converts the string parameter to uppercase. Example: upper-case('The XML') Result: 'THE XML' |
fn:lower-case(string) |
Converts the string parameter to lowercase. Example: lower-case('The XML') Result: 'the xml' |
fn:translate(string1,string2,string3) |
Replaces string2 with string3 in string1. Example: translate('12:30','30','45') Result: '12:45' Example: translate('12:30','03','54') Result: '12:45' Example: translate('12:30','0123','abcd') Result: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Example: escape-uri("http://example.com/test#car", true()) Result: "http%3A%2F%2Fexample.com%2Ftest#car" Example: escape-uri("http://example.com/test#car", false()) Result: "http://example.com/test#car" Example: escape-uri ("http://example.com/~bébé", false()) Result: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Returns true if string1 contains string2, otherwise returns false. Example: contains('XML','XM') Result: true |
fn:starts-with(string1,string2) |
Returns true if string1 starts with string2, otherwise returns false. Example: starts-with('XML','X') Result: true |
fn:ends-with(string1,string2) |
Returns true if string1 ends with string2, otherwise returns false. Example: ends-with('XML','X') Result: false |
fn:substring-before(string1,string2) |
Returns the substring that precedes the occurrence of string2 within string1. Example: substring-before('12/10','/') Result: '12' |
fn:substring-after(string1,string2) |
Returns the substring that follows the occurrence of string2 within string1. Example: substring-after('12/10','/') Result: '10' |
fn:matches(string,pattern) |
Returns true if the string parameter matches the specified pattern, otherwise returns false. Example: matches("Merano", "ran") Result: true |
fn:replace(string,pattern,replace) |
Replaces the specified pattern with the replace parameter and returns the result. Example: replace("Bella Italia", "l", "*") Result: 'Be**a Ita*ia' Example: replace("Bella Italia", "l", "") Result: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Example: tokenize("XPath is fun", "\s+") Result: ("XPath", "is", "fun") |
Functions for anyURI
Name | Description |
---|---|
fn:resolve-uri(relative,base) |
Functions related to boolean values
Name | Description |
---|---|
fn:boolean(arg) | Returns the boolean value of a number, string, or node set. |
fn:not(arg) |
First, the boolean() function restores the parameter to a boolean value. If the boolean value is false, it returns true; otherwise, it returns true. Example: not(true()) Result: false |
fn:true() |
Returns the boolean value true. Example: true() Result: true |
fn:false() |
Returns the boolean value false. Example: false() Result: false |
Functions related to duration, date, and time
Function to extract components of date, time, and duration
Name | Description |
---|---|
fn:dateTime(date,time) | Converts the parameter to a date and time. |
fn:years-from-duration(datetimedur) | Returns the integer part of the year parameter value, represented in standard lexical notation. |
fn:months-from-duration(datetimedur) | Returns the integer part of the month parameter value, represented in standard lexical notation. |
fn:days-from-duration(datetimedur) | Returns the integer part of the day parameter value, represented in standard lexical notation. |
fn:hours-from-duration(datetimedur) | Returns the integer representing the hours part of the parameter value, expressed in standard lexical notation. |
fn:minutes-from-duration(datetimedur) | Returns the integer representing the minutes part of the parameter value, expressed in standard lexical notation. |
fn:seconds-from-duration(datetimedur) | Returns the decimal number representing the minutes part of the parameter value, expressed in standard lexical notation. |
fn:year-from-dateTime(datetime) |
Returns the integer representing the year part of the local value of the parameter. Example: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Result: 2005 |
fn:month-from-dateTime(datetime) |
Returns the integer representing the month part of the local value of the parameter. Example: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Result: 01 |
fn:day-from-dateTime(datetime) |
Returns the integer representing the day part of the local value of the parameter. Example: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Result: 10 |
fn:hours-from-dateTime(datetime) |
Returns the integer representing the hours part of the local value of the parameter. Example: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Result: 12 |
fn:minutes-from-dateTime(datetime) |
Returns the integer representing the minutes part of the local value of the parameter. Example: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Result: 30 |
fn:seconds-from-dateTime(datetime) |
Returns the decimal number representing the seconds part of the local value of the parameter. Example: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Result: 0 |
fn:timezone-from-dateTime(datetime) | Returns the timezone part of the parameter if it exists. |
fn:year-from-date(date) |
Returns the integer representing the year in the local value of the parameter. Example: year-from-date(xs:date("2005-04-23")) Result: 2005 |
fn:month-from-date(date) |
Returns the integer representing the month in the local value of the parameter. Example: month-from-date(xs:date("2005-04-23")) Result: 4 |
fn:day-from-date(date) |
Returns the integer representing the day in the local value of the parameter. Example: day-from-date(xs:date("2005-04-23")) Result: 23 |
fn:timezone-from-date(date) | Returns the timezone part of the parameter if it exists. |
fn:hours-from-time(time) |
Returns the integer representing the hours part in the local value of the parameter. Example: hours-from-time(xs:time("10:22:00")) Result: 10 |
fn:minutes-from-time(time) |
Returns the integer representing the minutes part in the local value of the parameter. Example: minutes-from-time(xs:time("10:22:00")) Result: 22 |
fn:seconds-from-time(time) |
Returns the integer representing the seconds part in the local value of the parameter. Example: seconds-from-time(xs:time("10:22:00")) Result: 0 |
fn:timezone-from-time(time) | Returns the timezone part of the parameter if it exists. |
fn:adjust-dateTime-to-timezone(datetime,timezone) | If the timezone parameter is empty, returns dateTime without timezone. Otherwise, returns dateTime with timezone. |
fn:adjust-date-to-timezone(date,timezone) | If the timezone parameter is empty, returns date without timezone. Otherwise, returns date with timezone. |
fn:adjust-time-to-timezone(time,timezone) | If the timezone parameter is empty, returns time without timezone. Otherwise, returns time with timezone. |
Functions related to QNames
Name | Description |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Functions related to nodes
Name | Description |
---|---|
|
Returns the name of the current node or the first node in the specified node set. |
|
Returns the name of the current node or the first node in the specified node set without the namespace prefix. |
|
Returns the namespace URI of the current node or the first node in the specified node set. |
fn:lang(lang) |
Returns true if the language of the current node matches the specified language. Example: Lang("en") is true for <p xml:lang="en">...</p> Example: Lang("de") is false for <p xml:lang="en">...</p> |
|
Returns the root node of the node tree belonging to the current node or the specified node. It is usually the document node. |
Functions related to sequences
General functions
Name | Description |
---|---|
fn:index-of((item,item,...),searchitem) |
Returns the positions in the item sequence that are equal to the searchitem parameter. Example: index-of ((15, 40, 25, 40, 10), 40) Result: (2, 4) Example: index-of (("a", "dog", "and", "a", "duck"), "a") Result (1, 4) Example: index-of ((15, 40, 25, 40, 10), 18) Result: () |
fn:remove((item,item,...),position) |
Returns a new sequence constructed by the item parameter, while deleting the item at the specified position. Example: remove(("ab", "cd", "ef"), 0) Result: ("ab", "cd", "ef") Example: remove(("ab", "cd", "ef"), 1) Result: ("cd", "ef") Example: remove(("ab", "cd", "ef"), 4) Result: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Returns true if the parameter value is an empty sequence, otherwise returns false. Example: empty(remove(("ab", "cd"), 1)) Result: false |
fn:exists(item,item,...) |
Returns true if the parameter value is not an empty sequence, otherwise returns false. Example: exists(remove(("ab"), 1)) Result: false |
fn:distinct-values((item,item,...),collation) |
Returns unique distinct values. Example: distinct-values((1, 2, 3, 1, 2)) Result: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Returns a new sequence constructed by the item parameter - inserting the value of the inserts parameter at the position specified by the pos parameter. Example: insert-before(("ab", "cd"), 0, "gh") Result: ("gh", "ab", "cd") Example: insert-before(("ab", "cd"), 1, "gh") Result: ("gh", "ab", "cd") Example: insert-before(("ab", "cd"), 2, "gh") Result: ("ab", "gh", "cd") Example: insert-before(("ab", "cd"), 5, "gh") Result: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Returns the reversed order of specified items. Example: reverse(("ab", "cd", "ef")) Result: ("ef", "cd", "ab") Example: reverse(("ab")) Result: ("ab") |
fn:subsequence((item,item,...),start,len) |
Returns a sequence of items starting from the position specified by the start parameter and with a length specified by the len parameter. The position of the first item is 1. Example: subsequence(($item1, $item2, $item3,...), 3) Result: ($item3, ...) Example: subsequence(($item1, $item2, $item3, ...), 2, 2) Result: ($item2, $item3) |
fn:unordered((item,item,...)) | Returns items in the order determined by the implementation. |
Function to test the sequence capacity
Name | Description |
---|---|
fn:zero-or-one(item,item,...) | Returns the argument if it contains zero or one item, otherwise generates an error. |
fn:one-or-more(item,item,...) | Returns the argument if it contains one or more items, otherwise generates an error. |
fn:exactly-one(item,item,...) | Returns the argument if it contains a single item, otherwise generates an error. |
Equals, Union, Intersection and Except
Name | Description |
---|---|
fn:deep-equal(param1,param2,collation) | Returns true if param1 and param2 are equal to each other (deep-equal), otherwise returns false. |
Aggregate function
Name | Description |
---|---|
fn:count((item,item,...)) | Returns the number of nodes. |
fn:avg((arg,arg,...)) |
Returns the average of the values of the arguments. Example: avg((1,2,3)) Result: 2 |
fn:max((arg,arg,...)) |
Returns the argument that is greater than the other parameters. Example: max((1,2,3)) Result: 3 Example: max(('a', 'k')) Result: 'k' |
fn:min((arg,arg,...)) |
Returns the argument that is less than the other parameters. Example: min((1,2,3)) Result: 1 Example: min(('a', 'k')) Result: 'a' |
fn:sum(arg,arg,...) | Returns the sum of the values of each node in the specified node set. |
The function to generate a sequence
Name | Description |
---|---|
fn:id((string,string,...),node) | Returns a sequence of element nodes that have an ID value equal to the value of one or more of the values specified in the string argument |
fn:idref((string,string,...),node) | Returns a sequence of element or attribute nodes that have an IDREF value equal to the value of one or more of the values specified in the string argument |
fn:doc(URI) | |
fn:doc-available(URI) | If the doc() function returns a document node, then return true, otherwise return false. |
|
Context Functions
Name | Description |
---|---|
fn:position() |
Return the index position of the current node being processed. Example: //book[position()<=3] Result: Select the first three book elements |
fn:last() |
Return the number of items in the list of nodes being processed. Example: //book[last()] Result: Select the last book element |
fn:current-dateTime() | Return the current dateTime (with timezone). |
fn:current-date() | Return the current date (with timezone). |
fn:current-time() | Return the current time (with timezone). |
fn:implicit-timezone() | Return the value of the implicit timezone. |
fn:default-collation() | Return the value of the default collation. |
fn:static-base-uri() | Return the value of base-uri. |
- Previous Page Summary of XPath
- Next Page XPath Tutorial