XSLT, XPath en XQuery functies

XSLT 2.0, XPath 2.0, and XQuery 1.0 share the same function library.

Function Reference Manual

The default prefix of the function namespace is:fn:

The URI of the function namespace is:http://www.w3.org/2005/xpath-functions

Tip:Typically used fn: prefix to call the function, for example fn:string()However, due to fn: It is the default namespace prefix, so the prefix is not needed when calling the function.

Access functions

Naam Verklaring
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 rejected.
fn:data(item.item,...) Accepts an item sequence and returns a sequence of atomic values.
  • fn:base-uri()
  • fn:base-uri(node)
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.

Top

Error and trace functions

Naam Verklaring
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

Example: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

Result: Returns http://example.com/test#toohigh and the string "Error: Price is too high" to the external processing environment.

fn:trace(value,label) Used for debugging queries.

Top

Functions related to numbers

Naam Verklaring
fn:number(arg)

Returns the numerical value of the argument. The argument can be a boolean value, a string, or a node set.

Voorbeeld: number('100')

Resultaat: 100

fn:abs(num)

Retourneert de absolute waarde van het argument.

Voorbeeld: abs(3.14)

Resultaat: 3.14

Voorbeeld: abs(-3.14)

Resultaat: 3.14

fn:ceiling(num)

Retourneert het kleinste gehele getal dat groter is dan het num parameter.

Voorbeeld: ceiling(3.14)

Resultaat: 4

fn:floor(num)

Retourneert het grootste gehele getal dat niet groter is dan het num parameter.

Voorbeeld: floor(3.14)

Resultaat: 3

fn:round(num)

Rondt het num parameter af naar het dichtstbijzijnde gehele getal.

Voorbeeld: round(3.14)

Resultaat: 3

fn:round-half-to-even()

Voorbeeld: round-half-to-even(0.5)

Resultaat: 0

Voorbeeld: round-half-to-even(1.5)

Resultaat: 2

Voorbeeld: round-half-to-even(2.5)

Resultaat: 2

Top

Over stringfuncties

Naam Verklaring
fn:string(arg)

Retourneert de stringwaarde van het argument. Het argument kan een getal, een logisch waarde of een knooppuntenset zijn.

Voorbeeld: string(314)

Resultaat: "314"

fn:codepoints-to-string(int,int,...)

Op basis van een codepoint reeks wordt een string geretourneerd.

Voorbeeld: codepoints-to-string(84, 104, 233, 114, 232, 115, 101)

Resultaat: 'Thérèse'

fn:string-to-codepoints(string)

Op basis van de string wordt een codepoint reeks geretourneerd.

Voorbeeld: string-to-codepoints("Thérèse")

Resultaat: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2) Op basis van de Unicode codepoint vergelijking, wordt true geretourneerd als de waarde van comp1 gelijk is aan de waarde van comp2. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), anders wordt false geretourneerd.
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

Als comp1 kleiner is dan comp2, wordt -1 geretourneerd. Als comp1 gelijk is aan comp2, wordt 0 geretourneerd. Als comp1 groter is dan comp2, wordt 1 geretourneerd (afhankelijk van het gebruikte vergelijkingsregels).

Voorbeeld: compare('ghi', 'ghi')

Resultaat: 0

fn:concat(string,string,...)

Geef de samenvoeging van strings terug.

Voorbeeld: concat('XPath ','is ','FUN!')

Resultaat: 'XPath is FUN!'

fn:string-join((string,string,...),sep)

Gebruik de sep parameter als scheidingsteken om de samengevoegde string van de string parameter terug te geven.

Voorbeeld: string-join(('We', 'are', 'having', 'fun!'), ' ')

Resultaat: ' We are having fun! '

Voorbeeld: string-join(('We', 'are', 'having', 'fun!'))

Resultaat: 'Wearehavingfun!'

Voorbeeld: string-join((), 'sep')

Resultaat: ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

Geef een substring van de opgegeven lengte terug die begint bij de startpositie. De index van de eerste character is 1. Als de len parameter wordt weggelaten, wordt de substring van de positie start tot het einde van de string geretourneerd.

Voorbeeld: substring('Beatles',1,4)

Resultaat: 'Beat'

Voorbeeld: substring('Beatles',2)

Resultaat: 'eatles'

  • fn:string-length(string)
  • fn:string-length()

Geef de lengte van de opgegeven string terug. Als er geen string parameter is, wordt de lengte van de stringwaarde van de huidige knoop geretourneerd.

Voorbeeld: string-length('Beatles')

Resultaat: 7

  • fn:normalize-space(string)
  • fn:normalize-space()

Verwijder de witruimte aan het begin en einde van de opgegeven string, vervang alle interne reeksen van witruimte door één en geef het resultaat terug. Als er geen string parameter is, wordt de huidige knoop verwerkt.

Voorbeeld: normalize-space(' The   XML ')

Resultaat: 'The XML'

fn:normalize-unicode() Voer Unicode normalisatie uit.
fn:upper-case(string)

Converteer de string parameter naar hoofdletters.

Voorbeeld: upper-case('The XML')

Result: 'THE XML'

fn:lower-case(string)

Convert the string parameter to lowercase.

Example: lower-case('The XML')

Result: 'the xml'

fn:translate(string1,string2,string3)

Replace string2 in string1 with string3.

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)

If string1 contains string2, return true, otherwise return false.

Example: contains('XML','XM')

Resultaat: true

fn:starts-with(string1,string2)

If string1 starts with string2, return true, otherwise return false.

Example: starts-with('XML','X')

Resultaat: true

fn:ends-with(string1,string2)

If string1 ends with string2, return true, otherwise return false.

Example: ends-with('XML','X')

Resultaat: false

fn:substring-before(string1,string2)

Return the substring before the occurrence of string2 in string1.

Voorbeeld: substring-before('12/10','/')

Resultaat: '12'

fn:substring-after(string1,string2)

Retourneer de substring die na string2 in string1 voorkomt.

Voorbeeld: substring-after('12/10','/')

Resultaat: '10'

fn:matches(string,pattern)

Retourneer true als de string parameter overeenkomt met het opgegeven patroon, anders retourneer false.

Voorbeeld: matches("Merano", "ran")

Resultaat: true

fn:replace(string,pattern,replace)

Vervang de opgegeven patroon door de replace parameter en retourneer het resultaat.

Voorbeeld: replace("Bella Italia", "l", "*")

Resultaat: 'Be**a Ita*ia'

Voorbeeld: replace("Bella Italia", "l", "")

Resultaat: 'Bea Itaia'

fn:tokenize(string,pattern)

Voorbeeld: tokenize("XPath is fun", "\s+")

Resultaat: ("XPath", "is", "fun")

Top

Functies voor anyURI.

Naam Verklaring
fn:resolve-uri(relative,base)  

Top

Functies over booleaanse waarden.

Naam Verklaring
fn:boolean(arg) Retourneer de booleaanse waarde van een getal, een string of een node-set.
fn:not(arg)

Maak eerst de parameter hersteld tot een booleaanse waarde met de boolean() functie.

Retourneer true als de booleaanse waarde false is, anders retourneer true.

Voorbeeld: not(true())

Resultaat: false

fn:true()

Retourneer de booleaanse waarde true.

Voorbeeld: true()

Resultaat: true

fn:false()

Retourneer de booleaanse waarde false.

Voorbeeld: false()

Resultaat: false

Top

Functies voor duur, datum en tijd.

Functie voor het extraheren van componenten van datum, tijd en duur.

Naam Verklaring
fn:dateTime(date,time) Converteer de parameter naar een datum en tijd.
fn:years-from-duration(datetimedur) Retourneer het integraal van het jaargezel van de parameterwaarde, weergegeven in de standaardwoordenlijst.
fn:months-from-duration(datetimedur) Retourneer het integraal van het maanddeel van de parameterwaarde, weergegeven in de standaardwoordenlijst.
fn:days-from-duration(datetimedur) Retourneert het gehele getal van de dagen van de waarde van het argument, weergegeven in standaard woordenschat.
fn:hours-from-duration(datetimedur) Retourneert het gehele getal van de uren van de waarde van het argument, weergegeven in standaard woordenschat.
fn:minutes-from-duration(datetimedur) Retourneert het gehele getal van de minuten van de waarde van het argument, weergegeven in standaard woordenschat.
fn:seconds-from-duration(datetimedur) Retourneert het decimale getal van de minuten van de waarde van het argument, weergegeven in standaard woordenschat.
fn:year-from-dateTime(datetime)

Retourneert het gehele getal van de jaren van de lokale waarde van het argument.

Voorbeeld: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultaat: 2005

fn:month-from-dateTime(datetime)

Retourneert het gehele getal van de maanden van de lokale waarde van het argument.

Voorbeeld: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultaat: 01

fn:day-from-dateTime(datetime)

Retourneert het gehele getal van de dagen van de lokale waarde van het argument.

Voorbeeld: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultaat: 10

fn:hours-from-dateTime(datetime)

Retourneert het gehele getal van de uren van de lokale waarde van het argument.

Voorbeeld: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultaat: 12

fn:minutes-from-dateTime(datetime)

Retourneert het gehele getal van de minuten van de lokale waarde van het argument.

Voorbeeld: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultaat: 30

fn:seconds-from-dateTime(datetime)

Retourneert het decimale getal van de seconden van de lokale waarde van het argument.

Voorbeeld: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

Resultaat: 0

fn:timezone-from-dateTime(datetime) Retourneert het tijdzone deel van het parameter, indien aanwezig.
fn:year-from-date(date)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de jaren.

Voorbeeld: year-from-date(xs:date("2005-04-23"))

Resultaat: 2005

fn:month-from-date(date)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de maanden.

Voorbeeld: month-from-date(xs:date("2005-04-23"))

Resultaat: 4

fn:day-from-date(date)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de dagen.

Voorbeeld: day-from-date(xs:date("2005-04-23"))

Resultaat: 23

fn:timezone-from-date(date) Retourneert het tijdzone deel van het parameter, indien aanwezig.
fn:hours-from-time(time)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de uren.

Voorbeeld: hours-from-time(xs:time("10:22:00"))

Resultaat: 10

fn:minutes-from-time(time)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de minuten.

Voorbeeld: minutes-from-time(xs:time("10:22:00"))

Resultaat: 22

fn:seconds-from-time(time)

Retourneert het geheel getal dat het lokale waarde van het parameter vertegenwoordigt voor de seconden.

Voorbeeld: seconds-from-time(xs:time("10:22:00"))

Resultaat: 0

fn:timezone-from-time(time) Retourneert het tijdzone deel van het parameter, indien aanwezig.
fn:adjust-dateTime-to-timezone(datetime,timezone)

Als het timezone parameter leeg is, wordt de dateTime zonder tijdzone geretourneerd.

Anders wordt de dateTime met tijdzone geretourneerd.

fn:adjust-date-to-timezone(date,timezone)

Als het timezone parameter leeg is, wordt de datum zonder tijdzone geretourneerd.

Anders wordt de datum met tijdzone geretourneerd.

fn:adjust-time-to-timezone(time,timezone)

Als het timezone parameter leeg is, wordt de tijd zonder tijdzone geretourneerd.

Anders retourneer de tijd met de tijdzone.

Top

Functies gerelateerd aan QNames

Naam Verklaring
fn:QName()  
fn:local-name-from-QName()  
fn:namespace-uri-from-QName()  
fn:namespace-uri-for-prefix()  
fn:in-scope-prefixes()  
fn:resolve-QName()  

Top

Functies voor knooppunten

Naam Verklaring
  • fn:name()
  • fn:name(nodeset)
Geef de naam van het huidige knooppunt of de eerste knooppunt in de opgegeven knooppuntenset terug.
  • fn:local-name()
  • fn:local-name(nodeset)
Geef de naam van het huidige knooppunt of de eerste knooppunt in de opgegeven knooppuntenset terug - zonder namespace voorvoegsel.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Geef de namespace URI van de huidige of opgegeven knooppunten terug.
fn:lang(lang)

Retourneer true als de taal van het huidige knooppunt overeenkomt met de opgegeven taal.

Voorbeeld: Lang("en") is true voor <p xml:lang="en">...</p>

Voorbeeld: Lang("de") is false voor <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
Geef de wortel van het knooppuntengeslacht van de huidige of opgegeven knooppunt terug. Dit is meestal de documentknooppunt.

Top

Functies voor reeksen

Algemene functie

Naam Verklaring
fn:index-of((item,item,...),searchitem)

Geef de positie van het item in de item reeks terug dat gelijk is aan de searchitem parameter.

Voorbeeld: index-of ((15, 40, 25, 40, 10), 40)

Resultaat: (2, 4)

Voorbeeld: index-of (("a", "dog", "and", "a", "duck"), "a")

Resultaat (1, 4)

Voorbeeld: index-of ((15, 40, 25, 40, 10), 18)

Resultaat: ()

fn:remove((item,item,...),position)

Geef een nieuwe reeks opgebouwd uit de item parameter - verwijder tegelijkertijd het item op de opgegeven positie.

Voorbeeld: remove(("ab", "cd", "ef"), 0)

Resultaat: ("ab", "cd", "ef")

Voorbeeld: remove(("ab", "cd", "ef"), 1)

Resultaat: ("cd", "ef")

Voorbeeld: remove(("ab", "cd", "ef"), 4)

Resultaat: ("ab", "cd", "ef")

fn:empty(item,item,...)

Retourneert true als de parameterwaarde een lege reeks is, anders retourneert het false.

Voorbeeld: empty(remove(("ab", "cd"), 1))

Resultaat: false

fn:exists(item,item,...)

Retourneert true als de parameterwaarde geen lege reeks is, anders retourneert het false.

Voorbeeld: exists(remove(("ab"), 1))

Resultaat: false

fn:distinct-values((item,item,...),collation)

Retourneert unieke waarden.

Voorbeeld: distinct-values((1, 2, 3, 1, 2))

Resultaat: (1, 2, 3)

fn:insert-before((item,item,...),pos,inserts)

Retourneert een nieuwe reeks gevormd door de item parameter, waarbij de waarde van de inserts parameter wordt ingevoegd op de door het pos parameter gespecificeerde positie.

Voorbeeld: insert-before(("ab", "cd"), 0, "gh")

Resultaat: ("gh", "ab", "cd")

Voorbeeld: insert-before(("ab", "cd"), 1, "gh")

Resultaat: ("gh", "ab", "cd")

Voorbeeld: insert-before(("ab", "cd"), 2, "gh")

Resultaat: ("ab", "gh", "cd")

Voorbeeld: insert-before(("ab", "cd"), 5, "gh")

Resultaat: ("ab", "cd", "gh")

fn:reverse((item,item,...))

Retourneert de omgekeerde volgorde van de gespecificeerde items.

Voorbeeld: reverse(("ab", "cd", "ef"))

Resultaat: ("ef", "cd", "ab")

Voorbeeld: reverse(("ab"))

Resultaat: ("ab")

fn:subsequence((item,item,...),start,len)

Retourneert de items op de door het start parameter gespecificeerde positie, de lengte van de reeks wordt bepaald door het len parameter.

De positie van het eerste item is 1.

Voorbeeld: subsequence(($item1, $item2, $item3,...), 3)

Resultaat: ($item3, ...)

Voorbeeld: subsequence(($item1, $item2, $item3, ...), 2, 2)

Resultaat: ($item2, $item3)

fn:unordered((item,item,...)) Retourneer items in de volgorde die door de implementatie is bepaald.

Functie om de capaciteit van een reeks te testen

Naam Verklaring
fn:zero-or-one(item,item,...) Retourneer de parameter als deze geen of één item bevat, anders genereer een fout.
fn:one-or-more(item,item,...) Retourneer de parameter als deze een of meerdere items bevat, anders genereer een fout.
fn:exactly-one(item,item,...) Retourneer de parameter als deze een item bevat, anders genereer een fout.

Gelijkheid, Unie, Intersection en Uitkomst

Naam Verklaring
fn:deep-equal(param1,param2,collation) Retourneer true als param1 en param2 gelijk zijn aan elkaar (deep-equal), anders retourneer false.

Som functie

Naam Verklaring
fn:count((item,item,...)) Retourneer het aantal knopen.
fn:avg((arg,arg,...))

Retourneer het gemiddelde van de waarden van de parameters.

Voorbeeld: avg((1,2,3))

Resultaat: 2

fn:max((arg,arg,...))

Retourneer de parameter die groter is dan de andere parameters.

Voorbeeld: max((1,2,3))

Resultaat: 3

Voorbeeld: max(('a', 'k'))

Resultaat: 'k'

fn:min((arg,arg,...))

Retourneer de parameter die kleiner is dan de andere parameters.

Voorbeeld: min((1,2,3))

Resultaat: 1

Voorbeeld: min(('a', 'k'))

Resultaat: 'a'

fn:sum(arg,arg,...) Retourneer de som van de waarden van elke knoop in de gespecificeerde knooppakket.

Functie om een reeks te genereren

Naam Verklaring
fn:id((string,string,...),node) Retourneer een reeks elementknopen, waarvan de ID-waarden gelijk zijn aan een van de een of meerdere waarden die in de string parameter zijn gespecificeerd.
fn:idref((string,string,...),node) Retourneer een reeks elementen of eigenschapsknopen, waarvan de IDREF-waarden gelijk zijn aan een van de een of meerdere waarden die in de string parameter zijn gespecificeerd.
fn:doc(URI)  
fn:doc-available(URI) Retourneer true als de doc() functie een documentnode retourneert, anders retourneer false.
  • fn:collection()
  • fn:collection(string)
 

Top

Contextfuncties

Naam Verklaring
fn:position()

Keer de indexpositie van de huidige node terug die wordt verwerkt.

Voorbeeld: //book[position()<=3]

Resultaat: selecteer de eerste drie book-elementen

fn:last()

Keer het aantal items in de lijst van verwerkte nodes terug.

Voorbeeld: //book[last()]

Resultaat: selecteer de laatste book-element

fn:current-dateTime() Keer de huidige dateTime (met tijdzone) terug.
fn:current-date() Keer de huidige datum (met tijdzone) terug.
fn:current-time() Keer de huidige tijd (met tijdzone) terug.
fn:implicit-timezone() Keer de waarde van de impliciete tijdzone terug.
fn:default-collation() Keer de waarde van de standaard vergelijking terug.
fn:static-base-uri() Keer de waarde van base-uri terug.

Top

XSLT-functies

Daarnaast zijn er de volgende ingebouwde XSLT-functies:

Naam Beschrijving
current() Keer een node-set terug die de huidige node als enige lid bevat.
document() Gebruikt om nodes in een externe XML-document te bereiken.
element-available() Controleer of de XSLT-verwerker de opgegeven elementen ondersteunt.
format-number() Converteer een getal naar een string.
function-available() Controleer of de XSLT-verwerker de opgegeven functie ondersteunt.
generate-id() Keer de unieke stringwaarde die de specifieke node identificeert terug.
key() Vind de elementen die eerder zijn gemarkeerd met de <xsl:key> zin.
node-set Converteer de boom naar een node-set. De gegenereerde node-set bevat altijd een enkele node en is de wortel van de boom.
system-property() Keer de waarde van het systeemattribuut terug.
unparsed-entity-uri() Keer terug naar de URI van de ongeparseerde entiteit.

Top