Funções do XSLT, XPath e XQuery
- Página anterior Elementos XSLT
- Próxima página Tutorial XML
O XSLT 2.0, XPath 2.0 e XQuery 1.0 compartilham a mesma biblioteca de funções.
Manual de referência das funções
O prefixo padrão do espaço de nomes das funções é:fn:
O URI do espaço de nomes das funções é:http://www.w3.org/2005/xpath-functions
Dica:Normalmente usado fn:
Chame a função usando o prefixo, por exemplo fn:string()
No entanto, devido a fn:
É o prefixo padrão do espaço de nomes, portanto, não é necessário adicionar prefixo ao nome da função ao chamar.
Funções de acesso
Nome | Descrição |
---|---|
fn:node-name(node) | Retorna o nome do nó do parâmetro. |
fn:nilled(node) | Retorna um valor booleano indicando se o nó do parâmetro foi recusado. |
fn:data(item.item,...) | Aceita uma sequência de itens e retorna uma sequência de valores atômicos. |
|
Retorna o valor da propriedade base-uri do nó atual ou do nó especificado. |
fn:document-uri(node) | Retorna o valor da propriedade document-uri do nó especificado. |
Funções de erro e rastreamento
Nome | Descrição |
---|---|
|
Exemplo: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Resultado: Retorna ao ambiente de processamento externo http://example.com/test#toohigh e a string "Error: Price is too high". |
fn:trace(value,label) | Usado para debugar consultas. |
Funções relacionadas a números
Nome | Descrição |
---|---|
fn:number(arg) |
Retorna o valor do parâmetro. O parâmetro pode ser um valor booleano, uma string ou um conjunto de nós. Exemplo: number('100') Resultado: 100 |
fn:abs(num) |
Retorna o valor absoluto do parâmetro. Exemplo: abs(3.14) Resultado: 3.14 Exemplo: abs(-3.14) Resultado: 3.14 |
fn:ceiling(num) |
Retorna o menor inteiro maior que o parâmetro num. Exemplo: ceiling(3.14) Resultado: 4 |
fn:floor(num) |
Retorna o maior inteiro não maior que o parâmetro num. Exemplo: floor(3.14) Resultado: 3 |
fn:round(num) |
Arredonda o parâmetro num para o inteiro mais próximo. Exemplo: round(3.14) Resultado: 3 |
fn:round-half-to-even() |
Exemplo: round-half-to-even(0.5) Resultado: 0 Exemplo: round-half-to-even(1.5) Resultado: 2 Exemplo: round-half-to-even(2.5) Resultado: 2 |
Funções de string
Nome | Descrição |
---|---|
fn:string(arg) |
Retorna o valor de string do parâmetro. O parâmetro pode ser um número, valor lógico ou conjunto de nós. Exemplo: string(314) Resultado: "314" |
fn:codepoints-to-string(int,int,...) |
De acordo com a sequência de pontos de código, retorna a string. Exemplo: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Resultado: 'Thérèse' |
fn:string-to-codepoints(string) |
De acordo com a string, retorna uma sequência de pontos de código. Exemplo: string-to-codepoints("Thérèse") Resultado: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | De acordo com a comparação de pontos de código Unicode, se o valor de comp1 for igual ao valor de comp2, retorna true. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), caso contrário, retorna false. |
|
Se comp1 for menor que comp2, retorna -1. Se comp1 for igual a comp2, retorna 0. Se comp1 for maior que comp2, retorna 1. (Conforme o padrão de comparação utilizado). Exemplo: compare('ghi', 'ghi') Resultado: 0 |
fn:concat(string,string,...) |
Retornar a concatenação de strings. Exemplo: concat('XPath ','is ','FUN!') Resultado: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Usar o parâmetro sep como delimitador para retornar a string concatenada. Exemplo: string-join(('We', 'are', 'having', 'fun!'), ' ') Resultado: ' We are having fun! ' Exemplo: string-join(('We', 'are', 'having', 'fun!')) Resultado: 'Wearehavingfun!' Exemplo: string-join((), 'sep') Resultado: '' |
|
Retornar a substring de comprimento especificado a partir da posição start. O índice do primeiro caractere é 1. Se o parâmetro len for omitido, retornar a substring da posição start até o final da string. Exemplo: substring('Beatles',1,4) Resultado: 'Beat' Exemplo: substring('Beatles',2) Resultado: 'eatles' |
|
Retornar o comprimento da string especificada. Se não houver parâmetro string, retornar o comprimento do valor de string do nó atual. Exemplo: string-length('Beatles') Resultado: 7 |
|
Remover os espaços em branco no início e no final da string especificada, substituir todas as sequências de espaços internos por um único espaço e retornar o resultado. Se não houver parâmetro string, processar o nó atual. Exemplo: normalize-space(' The XML ') Resultado: 'The XML' |
fn:normalize-unicode() | Executar a normalização Unicode. |
fn:upper-case(string) |
Converter o parâmetro string para maiúsculo. Exemplo: upper-case('The XML') Resultado: 'THE XML' |
fn:lower-case(string) |
Converte o parâmetro string para minúsculas. Exemplo: lower-case('The XML') Resultado: 'the xml' |
fn:translate(string1,string2,string3) |
Substitui string2 por string3 dentro de string1. Exemplo: translate('12:30','30','45') Resultado: '12:45' Exemplo: translate('12:30','03','54') Resultado: '12:45' Exemplo: translate('12:30','0123','abcd') Resultado: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Exemplo: escape-uri("http://example.com/test#car", true()) Resultado: "http%3A%2F%2Fexample.com%2Ftest#car" Exemplo: escape-uri("http://example.com/test#car", false()) Resultado: "http://example.com/test#car" Exemplo: escape-uri ("http://example.com/~bébé", false()) Resultado: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Se string1 contém string2, retorna true, caso contrário, retorna false. Exemplo: contains('XML','XM') Resultado: true |
fn:starts-with(string1,string2) |
Se string1 começa com string2, retorna true, caso contrário, retorna false. Exemplo: starts-with('XML','X') Resultado: true |
fn:ends-with(string1,string2) |
Se string1 termina com string2, retorna true, caso contrário, retorna false. Exemplo: ends-with('XML','X') Resultado: false |
fn:substring-before(string1,string2) |
Retorna a substring antes da ocorrência de string2 dentro de string1. Exemplo: substring-before('12/10','/') Resultado: '12' |
fn:substring-after(string1,string2) |
Retorna a substring que aparece após string2 em string1. Exemplo: substring-after('12/10','/') Resultado: '10' |
fn:matches(string,pattern) |
Se o parâmetro string correspondente ao padrão especificado, retorna true; caso contrário, retorna false. Exemplo: matches("Merano", "ran") Resultado: true |
fn:replace(string,pattern,replace) |
Substitui o padrão especificado pelo parâmetro replace e retorna o resultado. Exemplo: replace("Bella Italia", "l", "*") Resultado: 'Be**a Ita*ia' Exemplo: replace("Bella Italia", "l", "") Resultado: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Exemplo: tokenize("XPath is fun", "\s+") Resultado: ("XPath", "is", "fun") |
Funções relacionadas a anyURI.
Nome | Descrição |
---|---|
fn:resolve-uri(relative,base) |
Funções relacionadas a valores booleanos.
Nome | Descrição |
---|---|
fn:boolean(arg) | Retorna o valor booleano de um número, uma string ou um conjunto de nós. |
fn:not(arg) |
Primeiro, recupera o valor booleano do parâmetro usando a função boolean(). Se o valor booleano for false, retorna true; caso contrário, retorna true. Exemplo: not(true()) Resultado: false |
fn:true() |
Retorna o valor booleano true. Exemplo: true() Resultado: true |
fn:false() |
Retorna o valor booleano false. Exemplo: false() Resultado: false |
Funções relacionadas a duração, data e hora.
Função de extração de componentes de data, hora e duração.
Nome | Descrição |
---|---|
fn:dateTime(date,time) | Converte o parâmetro em data e hora. |
fn:years-from-duration(datetimedur) | Retorna o valor inteiro do ano do parâmetro, representado pela notação lexical padrão. |
fn:months-from-duration(datetimedur) | Retorna o valor inteiro do mês do parâmetro, representado pela notação lexical padrão. |
fn:days-from-duration(datetimedur) | Retorna o inteiro da parte do dia do valor, representado em notação lexical padrão. |
fn:hours-from-duration(datetimedur) | Retorna o inteiro da parte da hora do valor, representado em notação lexical padrão. |
fn:minutes-from-duration(datetimedur) | Retorna o inteiro da parte do minuto do valor, representado em notação lexical padrão. |
fn:seconds-from-duration(datetimedur) | Retorna o número decimal da parte do minuto do valor, representado em notação lexical padrão. |
fn:year-from-dateTime(datetime) |
Retorna o inteiro da parte do ano do valor local do parâmetro. Exemplo: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultado: 2005 |
fn:month-from-dateTime(datetime) |
Retorna o inteiro da parte do mês do valor local do parâmetro. Exemplo: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultado: 01 |
fn:day-from-dateTime(datetime) |
Retorna o inteiro da parte do dia do valor local do parâmetro. Exemplo: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultado: 10 |
fn:hours-from-dateTime(datetime) |
Retorna o inteiro da parte da hora do valor local do parâmetro. Exemplo: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultado: 12 |
fn:minutes-from-dateTime(datetime) |
Retorna o inteiro da parte do minuto do valor local do parâmetro. Exemplo: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultado: 30 |
fn:seconds-from-dateTime(datetime) |
Retorna o número decimal da parte do segundo do valor local do parâmetro. Exemplo: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Resultado: 0 |
fn:timezone-from-dateTime(datetime) | Retorna a parte do fuso horário do parâmetro, se existir. |
fn:year-from-date(date) |
Retorna o inteiro representando o ano do valor local do parâmetro. Exemplo: year-from-date(xs:date("2005-04-23")) Resultado: 2005 |
fn:month-from-date(date) |
Retorna o inteiro representando o mês do valor local do parâmetro. Exemplo: month-from-date(xs:date("2005-04-23")) Resultado: 4 |
fn:day-from-date(date) |
Retorna o inteiro representando o dia do valor local do parâmetro. Exemplo: day-from-date(xs:date("2005-04-23")) Resultado: 23 |
fn:timezone-from-date(date) | Retorna a parte do fuso horário do parâmetro, se existir. |
fn:hours-from-time(time) |
Retorna o inteiro representando a parte de horas do valor local do parâmetro. Exemplo: hours-from-time(xs:time("10:22:00")) Resultado: 10 |
fn:minutes-from-time(time) |
Retorna o inteiro representando a parte de minutos do valor local do parâmetro. Exemplo: minutes-from-time(xs:time("10:22:00")) Resultado: 22 |
fn:seconds-from-time(time) |
Retorna o inteiro representando a parte de segundos do valor local do parâmetro. Exemplo: seconds-from-time(xs:time("10:22:00")) Resultado: 0 |
fn:timezone-from-time(time) | Retorna a parte do fuso horário do parâmetro, se existir. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Se o parâmetro timezone estiver vazio, retorna o dateTime sem fuso horário. Caso contrário, retorna o dateTime com fuso horário. |
fn:adjust-date-to-timezone(date,timezone) |
Se o parâmetro timezone estiver vazio, retorna a data sem fuso horário. Caso contrário, retorna a data com fuso horário. |
fn:adjust-time-to-timezone(time,timezone) |
Se o parâmetro timezone estiver vazio, retorna o time sem fuso horário. Caso contrário, retorna a hora com fuso horário. |
Funções relacionadas a QNames
Nome | Descrição |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Funções de nó
Nome | Descrição |
---|---|
|
Retorna o nome do nó atual ou do primeiro nó do conjunto de nós especificado. |
|
Retorna o nome do nó atual ou do primeiro nó do conjunto de nós especificado - sem prefixo de namespace. |
|
Retorna o URI do namespace do nó atual ou do conjunto de nós especificado. |
fn:lang(lang) |
Retorna true se o idioma do nó atual coincidir com o idioma especificado. Exemplo: Lang("en") é verdadeiro para <p xml:lang="en">...</p> Exemplo: Lang("de") é falso para <p xml:lang="en">...</p> |
|
Retorna o nó raiz da árvore de nós do nó atual ou do nó especificado. Geralmente é o nó de documento. |
Funções de sequência
Função geral
Nome | Descrição |
---|---|
fn:index-of((item,item,...),searchitem) |
Retorna a posição do item na sequência de itens igual ao parâmetro searchitem. Exemplo: index-of ((15, 40, 25, 40, 10), 40) Resultado: (2, 4) Exemplo: index-of (("a", "dog", "and", "a", "duck"), "a") Resultado (1, 4) Exemplo: index-of ((15, 40, 25, 40, 10), 18) Result: () |
fn:remove((item,item,...),position) |
Retorna uma nova sequência construída pelo parâmetro item - remove o item especificado pelo parâmetro position. Exemplo: remove(("ab", "cd", "ef"), 0) Resultado: ("ab", "cd", "ef") Exemplo: remove(("ab", "cd", "ef"), 1) Resultado: ("cd", "ef") Exemplo: remove(("ab", "cd", "ef"), 4) Resultado: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Se o valor do parâmetro for uma sequência vazia, retorna true, caso contrário, retorna false. Exemplo: empty(remove(("ab", "cd"), 1)) Resultado: false |
fn:exists(item,item,...) |
Se o valor do parâmetro não for uma sequência vazia, retorna true, caso contrário, retorna false. Exemplo: exists(remove(("ab"), 1)) Resultado: false |
fn:distinct-values((item,item,...),collation) |
Retorna os valores únicos diferentes. Exemplo: distinct-values((1, 2, 3, 1, 2)) Resultado: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Retorna uma nova sequência construída pelo parâmetro item, inserindo o valor do parâmetro inserts na posição especificada pelo parâmetro pos. Exemplo: insert-before(("ab", "cd"), 0, "gh") Resultado: ("gh", "ab", "cd") Exemplo: insert-before(("ab", "cd"), 1, "gh") Resultado: ("gh", "ab", "cd") Exemplo: insert-before(("ab", "cd"), 2, "gh") Resultado: ("ab", "gh", "cd") Exemplo: insert-before(("ab", "cd"), 5, "gh") Resultado: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Retorna a inversão da ordem dos itens especificados. Exemplo: reverse(("ab", "cd", "ef")) Resultado: ("ef", "cd", "ab") Exemplo: reverse(("ab")) Resultado: ("ab") |
fn:subsequence((item,item,...),start,len) |
Retorna a sequência de itens especificada pelo parâmetro start, com comprimento especificado pelo parâmetro len. A posição do primeiro item é 1. Exemplo: subsequence(($item1, $item2, $item3,...), 3) Resultado: ($item3, ...) Exemplo: subsequence(($item1, $item2, $item3, ...), 2, 2) Resultado: ($item2, $item3) |
fn:unordered((item,item,...)) | Retorna os itens com base na ordem determinada pela implementação. |
Funções de teste da capacidade da sequência
Nome | Descrição |
---|---|
fn:zero-or-one(item,item,...) | Se o parâmetro contiver zero ou um item, retorna o parâmetro, caso contrário, gera um erro. |
fn:one-or-more(item,item,...) | Se o parâmetro contiver um ou mais itens, retorna o parâmetro, caso contrário, gera um erro. |
fn:exactly-one(item,item,...) | Se o parâmetro contiver um item, retorna o parâmetro, caso contrário, gera um erro. |
Igual, União, Interseção e Exceto
Nome | Descrição |
---|---|
fn:deep-equal(param1,param2,collation) | Se param1 e param2 forem iguais (deep-equal), retorna true, caso contrário, retorna false. |
Funções de totalização
Nome | Descrição |
---|---|
fn:count((item,item,...)) | Retorna o número de nós. |
fn:avg((arg,arg,...)) |
Retorna a média dos valores dos parâmetros. Exemplo: avg((1,2,3)) Resultado: 2 |
fn:max((arg,arg,...)) |
Retorna o parâmetro que é maior que os outros parâmetros. Exemplo: max((1,2,3)) Resultado: 3 Exemplo: max(('a', 'k')) Resultado: 'k' |
fn:min((arg,arg,...)) |
Retorna o parâmetro que é menor que os outros parâmetros. Exemplo: min((1,2,3)) Resultado: 1 Exemplo: min(('a', 'k')) Resultado: 'a' |
fn:sum(arg,arg,...) | Retorna a soma dos valores numéricos de cada nó no conjunto de nós especificado. |
Funções de geração de sequência
Nome | Descrição |
---|---|
fn:id((string,string,...),node) | Retorna uma sequência de nós de elemento, cujos valores de ID são iguais a um ou mais valores especificados no parâmetro string. |
fn:idref((string,string,...),node) | Retorna uma sequência de nós de elemento ou atributo, cujos valores de IDREF são iguais a um ou mais valores especificados no parâmetro string. |
fn:doc(URI) | |
fn:doc-available(URI) | Se a função doc() retornar um nó de documento, retorna true, caso contrário, retorna false. |
|
Funções de contexto
Nome | Descrição |
---|---|
fn:position() |
Retornar a posição index do nó atualmente processado. Exemplo: //book[position()<=3] Resultado: Selecionar os três primeiros elementos book |
fn:last() |
Retornar o número de itens na lista de nós processados. Exemplo: //book[last()] Resultado: Selecionar o último elemento book |
fn:current-dateTime() | Retornar o dateTime atual (com fuso horário). |
fn:current-date() | Retornar a data atual (com fuso horário). |
fn:current-time() | Retornar o tempo atual (com fuso horário). |
fn:implicit-timezone() | Retornar o valor da zona horária implícita. |
fn:default-collation() | Retornar o valor da comparação padrão. |
fn:static-base-uri() | Retornar o valor de base-uri. |
Funções XSLT
Além disso, existem as seguintes funções XSLT integradas:
Nome | Descrição |
---|---|
current() | Retornar o conjunto de nós que contém o nó atual como único membro. |
document() | Usado para acessar nós de documentos XML externos. |
element-available() | Detectar se o processador XSLT suporta o elemento especificado. |
format-number() | Converter o número em uma string. |
function-available() | Detectar se o processador XSLT suporta a função especificada. |
generate-id() | Retornar o valor de string que identifica de forma única o nó especificado. |
key() | Recuperar os elementos marcados anteriormente com a declaração <xsl:key>. |
node-set | Converter a árvore em um conjunto de nós. O conjunto de nós gerado sempre contém um único nó e é o nó raiz da árvore. |
system-property() | Retornar o valor da propriedade do sistema. |
unparsed-entity-uri() | Retornar o URI da entidade não analisada. |
- Página anterior Elementos XSLT
- Próxima página Tutorial XML