Online XPath tester








What is XPath?

XPath is a query language used for selecting nodes from XML and processing them.
It may perform operations on strings, numbers and boolean values.

XPath 2.0 introduced many new features XQuery-cośtam:
- Added support for all XML simple types
- Many new functions (tripled instruction count)
- All expressions evaluate to sequence
- Introduces conditional expressions and for-loops

XPath 3.0
- Dynamic function calls (function may be called without being referenced by name (find function in collection and call)
- Inline functions
- Namespace literals - Namespace may be embedded into function name
- Support for union types - collections containing elements of different types
- Mapping operator - '!' performs evaluation for each element in sequence and concatenates results
- Introduced maps

XPath 3.1
- New operator for function chaining '=>'
- Introduced maps that store data in pair 'key:value' - 'map{ key : value, key : value }'
- Introduced arrays - they differ from sequences in that they can be nested 'array{1, 5, 7, (10 to 20)}'

XPath 1.0 & 2.0 functions

fn:position()
Returns the position of the current context node

W3C Documentation reference: Node-Set-Functions
fn:count(node-set)
Returns the number of nodes in the node-set
Arguments and return type:
Type Description
node-set Node-set to count nodes in
Examples:
Expression Result
count(//b:book) 5
count(//person[@id>5]) 17

W3C Documentation reference: Node-Set-Functions
fn:id(object)
Returns the element specified by it's unique id, requires DTD

W3C Documentation reference: Node-Set-Functions
fn:local-name(node-set)
Returns the local-name for the first node in the node-set
Arguments and return type:
Type Description
node-set Extract first node and return its local name
Examples:
Expression Result
local-name(//b:books) b:book
local-name(//b:book) b:title

W3C Documentation reference: Node-Set-Functions
fn:local-name()
Returns the local-name for the context node

W3C Documentation reference: Node-Set-Functions
fn:namespace-uri(node-set)
Returns the namespace-uri for the first node in the node-set
Arguments and return type:
Type Description
node-set Extract first node and return the namespace URI
Examples:
Expression Result
namespace-uri(//b:book) http://www.book.com

W3C Documentation reference: Node-Set-Functions
fn:namespace-uri()
Returns the namespace-uri for the context node

W3C Documentation reference: Node-Set-Functions
fn:name(node-set)
Returns the name for the first node in the node-set
Arguments and return type:
Type Description
node-set Extract first node and return QName
Examples:
Expression Result
name(//b:books/*) b:book
name(//b:book/*) b:title

W3C Documentation reference: Node-Set-Functions
fn:name()
Returns the name for the context node
Examples:
Expression Result
current context node Extract first node and return QName

W3C Documentation reference: Node-Set-Functions
fn:boolean(object)
The boolean function converts its argument to a boolean as follows:
  • a number is true if and only if it is neither positive or negative zero nor NaN
  • a node-set is true if and only if it is non-empty
  • a string is true if and only if its length is non-zero
  • an object of a type other than the four basic types is converted to a boolean in a way that is dependent on that type
Arguments and return type:
Type Description
object The object to convert to a boolean
Examples:
Expression Result
boolean("Release11") true
boolean("") false

W3C Documentation reference: Boolean-Functions
fn:not()
The not function returns true if its argument is false, and false otherwise.

W3C Documentation reference: Boolean-Functions
fn:true()
The true function returns true.

W3C Documentation reference: Boolean-Functions
fn:false()
The true function returns false.

W3C Documentation reference: Boolean-Functions
fn:lang(string)
The lang function returns true or false depending on whether the language of the context node as specified by xml:lang attributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of the xml:lang attribute on the context node, or, if the context node has no xml:lang attribute, by the value of the xml:lang attribute on the nearest ancestor of the context node that has an xml:lang attribute. If there is no such attribute, then lang returns false. If there is such an attribute, then lang returns true if the attribute value is equal to the argument ignoring case, or if there is some suffix starting with - such that the attribute value is equal to the argument ignoring that suffix of the attribute value and ignoring case.
Arguments and return type:
Type Description
string Language that will be looked for in context node
Examples: Look W3C documentation

W3C Documentation reference: Boolean-Functions
fn:last()
Returns the position of the last node in the context list

W3C Documentation reference: Node-Set-Functions
fn:boolean(object)
The boolean function converts its argument to a boolean as follows:
  • a number is true if and only if it is neither positive or negative zero nor NaN
  • a node-set is true if and only if it is non-empty
  • a string is true if and only if its length is non-zero
  • an object of a type other than the four basic types is converted to a boolean in a way that is dependent on that type
Arguments and return type:
Type Description
object The object to convert to a boolean
Examples:
Expression Result
boolean("Release11") true
boolean("") false

W3C Documentation reference: Boolean-Functions
fn:string(object)
Returns the string representation of the object argument
Arguments and return type:
Type Description
string The object to convert to a string
Examples:
Expression Result
string((1<0)) false
string(.11) 0.11

W3C Documentation reference: String-Functions
fn:number(object)
The number function converts its argument to a number as follows:
  • a string that consists of optional whitespace followed by an optional minus sign followed by a Number followed by whitespace is converted to the IEEE 754 number that is nearest (according to the IEEE 754 round-to-nearest rule) to the mathematical value represented by the string; any other string is converted to NaN
  • boolean true is converted to 1; boolean false is converted to 0
  • a node-set is first converted to a string as if by a call to the string function and then converted in the same way as a string argument
  • an object of a type other than the four basic types is converted to a number in a way that is dependent on that type
Arguments and return type:
Type Description
object The object to convert to a number
Examples:
Expression Result
boolean("Release11") true
boolean("") false

W3C Documentation reference: Numeric-Functions
fn:avg((arg,arg,...))
Returns the average of the argument values
Arguments and return type:
Type Description
sequence* returns average value of provided elements
Examples:
Expression Result
avg((1,2,3)) 2

W3C Documentation reference: #func-avg
fn:adjust-date-to-timezone(date,timezone)
If the timezone argument is empty, it returns a date without a timezone. Otherwise, it returns a date with a timezone
Arguments and return type:
Type Description
date date to be adjusted
timezone timezone to be imposed into date
Examples:
Expression Result
adjust-date-to-timezone(xs:date('2011-11-15'), xs:dayTimeDuration("PT10H")) 2011-11-15+10:00

W3C Documentation reference: #func-adjust-date-to-timezone
fn:error()
https://www.w3.org/TR/xpath-functions/#func-error

W3C Documentation reference: #func-error
fn:nilled(node)
Returns a Boolean value indicating whether the argument node is nilled

W3C Documentation reference: #func-nilled
fn:document-uri(node?)
Returns the document URI of the given node or the context item
Arguments and return type:
Type Description
node? Returns the document URI of the specified node or the context item (if no argument is provided)
Examples:
Expression Result
fn:document-uri(/library/fiction:book[1]) http://example.com/library.xml (assuming the document URI of the first fiction:book element is "http://example.com/library.xml")
fn:document-uri(/library) http://example.com/library.xml (assuming the document URI of the library element is "http://example.com/library.xml")

W3C Documentation reference: Document-URI
fn:base-uri(node?)
Returns the base URI of the node or the context item
Arguments and return type:
Type Description
node? Returns the base URI of the specified node or the context item (if no argument is provided)
Examples:
Expression Result
fn:base-uri(/library/fiction:book[1]) http://example.com/library.xml (assuming the base URI of the first fiction:book element is "http://example.com/library.xml")
fn:base-uri(/library) http://example.com/library.xml (assuming the base URI of the library element is "http://example.com/library.xml")

W3C Documentation reference: Base-URI
fn:node-name(node?)
Returns the name of a node as an xs:QName
Arguments and return type:
Type Description
node? Returns the name of the specified node or the context item if the argument is omitted
Examples:
Expression Result
fn:node-name(/library/*[1]) fiction:book
fn:node-name(/library/fiction:book[1]/title) title

W3C Documentation reference: Node-Name
fn:last()
Returns the position of the last item in the current context sequence
Arguments and return type:
Type Description
None Returns the position of the last item in the current context sequence
Examples:
Expression Result
/library/fiction:book[position() = last()] Returns the last fiction:book element in the library
/library/fiction:book[last()] Returns the last fiction:book element in the library

W3C Documentation reference: Last
fn:not($arg as item()*) as xs:boolean
Returns the negation of the effective boolean value of the argument
Arguments and return type:
Type Description
item()* Argument whose effective boolean value is to be negated
Examples:
Expression Result
fn:not(1) false
fn:not(0) true
fn:not('') true
fn:not('true') false

W3C Documentation reference: Not
fn:false() as xs:boolean
Returns the boolean value false
Arguments and return type:
Type Description
None Returns the boolean value false
Examples:
Expression Result
fn:false() false
//item[fn:false()] Returns an empty node-set

W3C Documentation reference: False
fn:true() as xs:boolean
Returns the boolean value true
Arguments and return type:
Type Description
None Returns the boolean value true
Examples:
Expression Result
fn:true() true
//item[fn:true()] Returns all <item> elements

W3C Documentation reference: True
fn:boolean($arg as item()*) as xs:boolean
Converts the argument to a boolean value
Arguments and return type:
Type Description
item()* Argument to be converted to a boolean value
Examples:
Expression Result
fn:boolean(1) true
fn:boolean(0) false
fn:boolean('') false
fn:boolean('true') true

W3C Documentation reference: Boolean
fn:escape-html-uri($uri as xs:string?) as xs:string
Escapes special characters in a URI to be used in HTML
Arguments and return type:
Type Description
xs:string? URI to be escaped for use in HTML
Examples:
Expression Result
fn:escape-html-uri('https://example.com/search?q=test&lang=en') https://example.com/search?q=test&lang=en
fn:escape-html-uri('https://example.com/page?id=1§ion=2') https://example.com/page?id=1&section=2

W3C Documentation reference: Escape-HTML-URI
fn:iri-to-uri($iri as xs:string?) as xs:string
Converts an IRI to a URI by escaping non-ASCII characters
Arguments and return type:
Type Description
xs:string? IRI to be converted to a URI
Examples:
Expression Result
fn:iri-to-uri('https://example.com/ümlaut') https://example.com/%C3%BCmlaut
fn:iri-to-uri('https://example.com/日本語') https://example.com/%E6%97%A5%E6%9C%AC%E8%AA%9E

W3C Documentation reference: IRI-to-URI
fn:encode-for-uri($uriPart as xs:string?) as xs:string
Encodes a string for use in a URI by escaping special characters
Arguments and return type:
Type Description
xs:string? String to be encoded for use in a URI
Examples:
Expression Result
fn:encode-for-uri('hello world') hello%20world
fn:encode-for-uri('example?query=value¶m=value2') example%3Fquery%3Dvalue%26param%3Dvalue2

W3C Documentation reference: Encode-for-URI
fn:resolve-uri($relative as xs:string?, $base as xs:string?) as xs:anyURI?
Resolves a relative URI using a base URI
Arguments and return type:
Type Description
xs:string? Relative URI to resolve
xs:string? Base URI to use for resolving (optional)
Examples:
Expression Result
fn:resolve-uri('example.html', 'https://www.example.com/folder/') https://www.example.com/folder/example.html
fn:resolve-uri('../images/pic.jpg', 'https://www.example.com/folder/page.html') https://www.example.com/images/pic.jpg

W3C Documentation reference: Resolve-URI
fn:analyze-string($input as xs:string?, $pattern as xs:string, $flags as xs:string?) as element(fn:analyze-string-result)
Analyzes the input string and returns an XML fragment containing match and non-match elements
Arguments and return type:
Type Description
xs:string? Input string to analyze
xs:string Regular expression pattern to match
xs:string? Flags to control the regular expression matching (optional)
Examples:
Expression Result
fn:analyze-string('red,green,blue', ',') <fn:analyze-string-result><fn:non-match>red</fn:non-match><fn:match>, <fn:non-match>green</fn:non-match><fn:match>, <fn:non-match>blue</fn:non-match></fn:analyze-string-result>

W3C Documentation reference: Analyze-String
fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string?) as xs:string*
Splits the input string into a sequence of substrings using the pattern as a delimiter
Arguments and return type:
Type Description
xs:string? Input string to tokenize
xs:string Regular expression pattern to use as delimiter
xs:string? Flags to control the regular expression matching (optional)
Examples:
Expression Result
fn:tokenize('XPath 3.0, XQuery 3.0, XSLT 3.0', ',\\s*') ('XPath 3.0', 'XQuery 3.0', 'XSLT 3.0')
fn:tokenize('apple,orange,banana', ',') ('apple', 'orange', 'banana')

W3C Documentation reference: Tokenize
fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string?) as xs:string
Replaces occurrences of the pattern in the input string with the replacement string
Arguments and return type:
Type Description
xs:string? Input string to search within
xs:string Regular expression pattern to match
xs:string Replacement string
xs:string? Flags to control the regular expression matching (optional)
Examples:
Expression Result
fn:replace('XPath 3.0 is great', '3.0', '3.1') 'XPath 3.1 is great'
fn:replace('Hello, World!', 'World', 'XPath') 'Hello, XPath!'

W3C Documentation reference: Replace
fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string?) as xs:boolean
Returns true if the input string matches the regular expression pattern, otherwise false
Arguments and return type:
Type Description
xs:string? Input string to search within
xs:string Regular expression pattern to match
xs:string? Flags to control the regular expression matching (optional)
Examples:
Expression Result
fn:matches('XPath 3.0', '\\d\\.\\d') true
fn:matches('Hello, World!', '[A-Z][a-z]*') true
fn:matches('example123', '\\d+', 'q') false

W3C Documentation reference: Matches
fn:substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string
Returns the part of the first string that follows the first occurrence of the second string
Arguments and return type:
Type Description
xs:string? Input string to search within
xs:string? Substring to search for
Examples:
Expression Result
fn:substring-after('Hello, World!', ',') ' World!'
fn:substring-after('XPath 3.0 is awesome!', '3.0') ' is awesome!'

W3C Documentation reference: Substring-After
fn:substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string
Returns the part of the first string that precedes the first occurrence of the second string
Arguments and return type:
Type Description
xs:string? Input string to search within
xs:string? Substring to search for
Examples:
Expression Result
fn:substring-before('Hello, World!', ',') 'Hello'
fn:substring-before('XPath 3.0 is awesome!', '3.0') 'XPath '

W3C Documentation reference: Substring-Before
fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean
Returns true if the first string ends with the second string, otherwise false
Arguments and return type:
Type Description
xs:string? Input string to check
xs:string? Substring to check for at the end of the first string
Examples:
Expression Result
fn:ends-with('Hello, World!', 'World!') true
fn:ends-with('Hello, World!', 'Hello') false
fn:ends-with('XPath 3.0', '3.0') true

W3C Documentation reference: Ends-With
fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean
Returns true if the first string starts with the second string, otherwise false
Arguments and return type:
Type Description
xs:string? Input string to check
xs:string? Substring to check for at the beginning of the first string
Examples:
Expression Result
fn:starts-with('Hello, World!', 'Hello') true
fn:starts-with('Hello, World!', 'World') false
fn:starts-with('XPath 3.0', 'XPath') true

W3C Documentation reference: Starts-With
fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean
Returns true if the first string contains the second string, otherwise false
Arguments and return type:
Type Description
xs:string? Input string to search within
xs:string? Substring to search for
Examples:
Expression Result
fn:contains('Hello, World!', 'World') true
fn:contains('Hello, World!', 'world') false
fn:contains('XPath 3.0', '3.0') true

W3C Documentation reference: Contains
fn:translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string
Returns the input string with specified characters replaced
Arguments and return type:
Type Description
xs:string? Input string to be translated
xs:string Map string with characters to replace
xs:string Translate string with replacement characters
Examples:
Expression Result
fn:translate('apple', 'aeiou', '12345') '1ppl2'
fn:translate('Hello, World!', 'HW', 'hw') 'hello, world!'

W3C Documentation reference: Translate
fn:lower-case($arg as xs:string?) as xs:string
Returns the input string with all characters converted to lowercase
Arguments and return type:
Type Description
xs:string? Input string to convert to lowercase
Examples:
Expression Result
fn:lower-case('HELLO, WORLD!') 'hello, world!'
fn:lower-case('XPath 3.0') 'xpath 3.0'
fn:lower-case('BANANA') 'banana'

W3C Documentation reference: Lower-Case
fn:upper-case($arg as xs:string?) as xs:string
Returns the input string with all characters converted to uppercase
Arguments and return type:
Type Description
xs:string? Input string to convert to uppercase
Examples:
Expression Result
fn:upper-case('Hello, World!') 'HELLO, WORLD!'
fn:upper-case('XPath 3.0') 'XPATH 3.0'
fn:upper-case('banana') 'BANANA'

W3C Documentation reference: Upper-Case
fn:normalize-unicode($arg as xs:string?, $normalizationForm as xs:string) as xs:string
Returns the input string with Unicode normalization applied
Arguments and return type:
Type Description
xs:string? Input string to normalize
xs:string Normalization form to apply (NFC, NFD, NFKC, NFKD)
Examples:
Expression Result
fn:normalize-unicode('Café', 'NFC') 'Café'
fn:normalize-unicode('Café', 'NFD') 'Café'

W3C Documentation reference: Normalize-Unicode
fn:normalize-space($arg as xs:string?) as xs:string
Returns the input string with whitespace normalized
Arguments and return type:
Type Description
xs:string? Input string to normalize whitespace
Examples:
Expression Result
fn:normalize-space(' Hello, World! ') 'Hello, World!'
fn:normalize-space(' XPath 3.0 ') 'XPath 3.0'
fn:normalize-space('\tbanana\t') 'banana'

W3C Documentation reference: Normalize-Space
fn:string-length($arg as xs:string?) as xs:integer
Returns the length of the input string
Arguments and return type:
Type Description
xs:string? Input string to calculate length
Examples:
Expression Result
fn:string-length('Hello, World!') 13
fn:string-length('XPath 3.0') 8
fn:string-length('banana') 6

W3C Documentation reference: String-Length
fn:substring($sourceString as xs:string?, $startingLoc as xs:double) as xs:string
Returns a substring of the source string, starting from a specific location
Arguments and return type:
Type Description
xs:string? Input source string
xs:double Starting location to extract the substring
Examples:
Expression Result
fn:substring('Hello, World!', 1, 5) 'Hello'
fn:substring('XPath 3.0', 7) '3.0'
fn:substring('banana', 2, 3) 'ana'

W3C Documentation reference: Substring
fn:string-join($arg1 as xs:string*, $separator as xs:string) as xs:string
Joins a sequence of strings with a specified separator, returning a single string
Arguments and return type:
Type Description
xs:string* Input sequence of strings to join
xs:string Separator string to insert between joined strings
Examples:
Expression Result
fn:string-join(('apple', 'banana', 'orange'), ', ') 'apple, banana, orange'
fn:string-join(('XPath', '3.0', 'Functions'), ' - ') 'XPath - 3.0 - Functions'
fn:string-join(('A', 'B', 'C'), '') 'ABC'

W3C Documentation reference: String-Join
fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?, ...) as xs:string
Concatenates two or more strings or atomic values, returning a single string
Arguments and return type:
Type Description
xs:anyAtomicType? Input strings or atomic values to concatenate
Examples:
Expression Result
fn:concat('Hello', ' ', 'World') 'Hello World'
fn:concat('I have ', 3, ' apples') 'I have 3 apples'
fn:concat('XPath ', '3.0') 'XPath 3.0'

W3C Documentation reference: Concat
fn:codepoint-equal($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:boolean?
Compares two strings on a codepoint-by-codepoint basis and returns true if they are equal, false otherwise
Arguments and return type:
Type Description
xs:string? First string to compare
xs:string? Second string to compare
Examples:
Expression Result
fn:codepoint-equal('Hello', 'Hello') true
fn:codepoint-equal('Hello', 'hello') false
fn:codepoint-equal('apple', 'banana') false

W3C Documentation reference: Codepoint-Equal
fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer?
Compares two strings and returns -1, 0, or 1 if the first string is less than, equal to, or greater than the second string, respectively
Arguments and return type:
Type Description
xs:string? First string to compare
xs:string? Second string to compare
Examples:
Expression Result
fn:compare('apple', 'banana') -1
fn:compare('apple', 'apple') 0
fn:compare('banana', 'apple') 1

W3C Documentation reference: Compare
fn:string-to-codepoints($arg as xs:string?) as xs:integer*
Returns a sequence of Unicode code points for a given string
Arguments and return type:
Type Description
xs:string? Input string
Examples:
Expression Result
fn:string-to-codepoints('Hello') (72, 101, 108, 108, 111)
fn:string-to-codepoints('( ͡° ͜ʖ ͡°)') (40, 32, 865, 176, 32, 860, 662, 32, 865, 176, 41)
fn:string-to-codepoints('😊') (128522)

W3C Documentation reference: String-To-Codepoints
fn:codepoints-to-string($arg as xs:integer*) as xs:string
Constructs a string from a sequence of Unicode code points
Arguments and return type:
Type Description
xs:integer* Sequence of Unicode code points
Examples:
Expression Result
fn:codepoints-to-string((72, 101, 108, 108, 111)) Hello
codepoints-to-string((40, 32, 865, 176, 32, 860, 662, 32, 865, 176, 41)) ( ͡° ͜ʖ ͡°)
fn:codepoints-to-string((128522)) 😊

W3C Documentation reference: Codepoints-To-String
fn:string(object)
Returns the string representation of the object argument
Arguments and return type:
Type Description
string The object to convert to a string
Examples:
Expression Result
string((1<0)) false
string(.11) 0.11

W3C Documentation reference: String-Functions
fn:format-number($value as numeric?, $picture as xs:string, $decimal-format-name as xs:string?) as xs:string
Formats a numeric value according to the supplied picture string and optional decimal format name
Arguments and return type:
Type Description
numeric? Numeric value to be formatted
xs:string Picture string defining the format
xs:string? Optional decimal format name
Examples:
Expression Result
fn:format-number(1234.567, '0.00') 1,234.57
fn:format-number(-1234.567, '0.00') -1,234.57
fn:format-number(0.12345, '0.00%') 12.35%

W3C Documentation reference: Format-Number
fn:format-integer($value as xs:integer?, $picture as xs:string) as xs:string?
Formats an integer value according to the supplied picture string
Arguments and return type:
Type Description
xs:integer? Integer value to be formatted
xs:string Picture string defining the format
Examples:
Expression Result
fn:format-integer(12345, '0,0') 12,345
fn:format-integer(-1234, '0,0') -1,234
fn:format-integer(1234, '00-00-00') 01-23-45

W3C Documentation reference: Format-Integer
fn:round-half-to-even($arg as numeric?) as numeric?
Returns the closest integer to the given numeric value, rounding half-way cases to the nearest even integer (also known as "bankers' rounding")
Arguments and return type:
Type Description
numeric? Numeric value for which the rounded value will be calculated
Examples:
Expression Result
fn:round-half-to-even(3.5) 4
fn:round-half-to-even(2.5) 2
fn:round-half-to-even(-1.5) -2
fn:round-half-to-even(xs:decimal('1.25'), 1) 1.2

W3C Documentation reference: Round-Half-To-Even
fn:round($arg as numeric?) as numeric?
Returns the closest integer to the given numeric value, rounding half-way cases away from zero
Arguments and return type:
Type Description
numeric? Numeric value for which the rounded value will be calculated
Examples:
Expression Result
fn:round(3.14) 3
fn:round(-4.7) -5
fn:round(xs:decimal('2.5')) 3

W3C Documentation reference: Round
fn:floor($arg as numeric?) as numeric?
Returns the largest integer less than or equal to the given numeric value
Arguments and return type:
Type Description
numeric? Numeric value for which the floor value will be calculated
Examples:
Expression Result
fn:floor(3.14) 3
fn:floor(-4.7) -5
fn:floor(xs:decimal('2.5')) 2

W3C Documentation reference: Floor
fn:ceiling($arg as numeric?) as numeric?
Returns the smallest integer greater than or equal to the given numeric value
Arguments and return type:
Type Description
numeric? Numeric value for which the ceiling value will be calculated
Examples:
Expression Result
fn:ceiling(3.14) 4
fn:ceiling(-4.7) -4
fn:ceiling(xs:decimal('2.5')) 3

W3C Documentation reference: Ceiling
fn:abs($arg as numeric?) as numeric?
Returns the absolute value of the given numeric value
Arguments and return type:
Type Description
numeric? Numeric value for which the absolute value will be calculated
Examples:
Expression Result
fn:abs(-42) 42
fn:abs(3.14) 3.14
fn:abs(xs:decimal('-5.5')) 5.5

W3C Documentation reference: Abs
fn:number(item?)
Converts the given value to a number
Arguments and return type:
Type Description
item? Returns the numeric value of the specified expression or the context item (if no argument is provided)
Examples:
Expression Result
fn:number(/library/fiction:book[1]/@id) 1 (if the first fiction:book element's id attribute is "1")
fn:number(/library/fiction:book[1]/price) 19.99 (if the first fiction:book element's price element contains "19.99")

W3C Documentation reference: Number
fn:data(item*)
Returns the simple value of an item or a sequence of items
Arguments and return type:
Type Description
item? Returns the simple value of the specified item or the context item (if no argument is provided)
Examples:
Expression Result
fn:data(/library/fiction:book[1]/title) The Catcher in the Rye
fn:data(/library/fiction:book[2]/author) Harper Lee

W3C Documentation reference: Data
fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime?
Constructs an xs:dateTime value from an xs:date and an xs:time value
Arguments and return type:
Type Description
xs:date? Date value
xs:time? Time value
Examples:
Expression Result
fn:dateTime(xs:date('2023-03-29'), xs:time('12:30:00')) 2023-03-29T12:30:00
fn:dateTime(xs:date('2023-03-29+05:00'), xs:time('12:30:00-08:00')) 2023-03-29T12:30:00-08:00

W3C Documentation reference: DateTime
fn:seconds-from-duration($arg as xs:duration?) as xs:decimal?
Returns the seconds component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the seconds component
Examples:
Expression Result
fn:seconds-from-duration(xs:dayTimeDuration('PT1H30M15.5S')) 15.5
fn:seconds-from-duration(xs:dayTimeDuration('-PT2M10.3S')) -10.3

W3C Documentation reference: Seconds-From-Duration
fn:minutes-from-duration($arg as xs:duration?) as xs:integer?
Returns the minutes component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the minutes component
Examples:
Expression Result
fn:minutes-from-duration(xs:dayTimeDuration('PT2H30M')) 30
fn:minutes-from-duration(xs:dayTimeDuration('-PT1H45M')) -45

W3C Documentation reference: Minutes-From-Duration
fn:hours-from-duration($arg as xs:duration?) as xs:integer?
Returns the hours component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the hours component
Examples:
Expression Result
fn:hours-from-duration(xs:dayTimeDuration('PT36H')) 36
fn:hours-from-duration(xs:dayTimeDuration('-PT12H30M')) -12

W3C Documentation reference: Hours-From-Duration
fn:days-from-duration($arg as xs:duration?) as xs:integer?
Returns the days component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the days component
Examples:
Expression Result
fn:days-from-duration(xs:dayTimeDuration('P5DT12H30M')) 5
fn:days-from-duration(xs:dayTimeDuration('-P2DT6H')) -2

W3C Documentation reference: Days-From-Duration
fn:months-from-duration($arg as xs:duration?) as xs:integer?
Returns the months component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the months component
Examples:
Expression Result
fn:months-from-duration(xs:duration('P2Y3M4DT5H6M7S')) 3
fn:months-from-duration(xs:duration('-P2Y3M4DT5H6M7S')) -3

W3C Documentation reference: Months-From-Duration
fn:years-from-duration($arg as xs:duration?) as xs:integer?
Returns the years component of the duration
Arguments and return type:
Type Description
xs:duration? Duration from which to extract the years component
Examples:
Expression Result
fn:years-from-duration(xs:duration('P2Y3M4DT5H6M7S')) 2
fn:years-from-duration(xs:duration('-P2Y3M4DT5H6M7S')) -2

W3C Documentation reference: Years-From-Duration
fn:adjust-date-to-timezone(date,timezone)
If the timezone argument is empty, it returns a date without a timezone. Otherwise, it returns a date with a timezone
Arguments and return type:
Type Description
date date to be adjusted
timezone timezone to be imposed into date
Examples:
Expression Result
adjust-date-to-timezone(xs:date('2011-11-15'), xs:dayTimeDuration("PT10H")) 2011-11-15+10:00

W3C Documentation reference: #func-adjust-date-to-timezone
fn:trace($value as item()*, $label as xs:string) as item()*
Outputs the provided label and value for diagnostic purposes and returns the value unchanged
Arguments and return type:
Type Description
item()* Value to be traced
xs:string Label to be output along with the value
Examples:
Expression Result
fn:trace(42, 'The value is:') Outputs "The value is: 42" for diagnostic purposes and returns 42
fn:trace(/library/book/title, 'Book title:') Outputs "Book title: [book title]" for diagnostic purposes and returns the book title

W3C Documentation reference: Trace
fn:error($error as xs:QName?, $description as xs:string?, $error-object as item()*)
Raises an error with the specified error code, description, and error object
Arguments and return type:
Type Description
xs:QName? Error code (optional)
xs:string? Description of the error (optional)
item()* Error object (optional)
Examples:
Expression Result
fn:error(xs:QName('err:FOER0000')) Raise error with the code err:FOER0000
fn:error(xs:QName('err:FOER0000'), 'Invalid value') Raise error with the code err:FOER0000 and description "Invalid value"

W3C Documentation reference: Error
fn:nilled(node)
Returns a Boolean value indicating whether the argument node is nilled

W3C Documentation reference: #func-nilled
fn:for-each(sequence*, function)
Applies function item to every element in sequence

W3C Documentation reference: #func-for-each