tutoriais mais recente desenvolvimento web
 

XSLT XPath e XQuery Funções


XSLT 2.0, XPath 2.0 e XQuery 1.0, compartilhar a mesma biblioteca de funções.


funções de Referência

O prefixo padrão para o namespace função é fn:
A URI do namespace função é: http://www.w3.org/2005/xpath-functions

Tip: As funções são muitas vezes chamado com o fn: prefixo, como fn: string() . No entanto, desde fn: é o prefixo padrão do espaço de nomes, os nomes das funções não precisam ser prefixado quando chamado.

funções de acesso

Nome Descrição
fn:node- name( node ) Retorna o nome do nó do nó de argumento
fn: nilled( node ) Retorna um valor booleano que indica se o nó argumento é nilled
fn: data( item.item,... ) Leva uma seqüência de itens e retorna uma seqüência de valores atômicos
fn:base- uri()
fn:base- uri( node )
Retorna o valor da propriedade base-uri do nó atual ou especificado
fn:document- uri( node ) Retorna o valor da propriedade documento-uri para o nó especificado

Funções de erro e rastreamento

Nome Descrição
fn: error()
fn: error( error )
fn: error( error,description )
fn: error( error,description,error-object )
Exemplo: error(fn:QName('http://example.com/test', 'err:toohigh') , 'Erro: O preço é alto demais')

Resultado da pesquisa: Devoluções http://example.com/test#toohigh ea cadeia "Error: Price is too high" para o meio ambiente de processamento externo

fn: trace( value,label ) Usado para consultas de depuração

Funções em valores numéricos

Nome Descrição
fn: number( arg ) Retorna o valor numérico do argumento. O argumento poderia ser um boolean, string, ou conjunto de nós

Exemplo: number('100')
Resultado: 100

fn: abs( num ) Retorna o valor absoluto do argumento

Exemplo: abs(3.14)
Resultado: 3,14

Exemplo: abs(-3.14)
Resultado: 3,14

fn: ceiling( num ) Retorna o menor inteiro que é maior do que o argumento número

Exemplo: ceiling(3.14)
Resultado: 4

fn: floor( num ) Retorna o maior inteiro que não é maior do que o argumento número

Exemplo: floor(3.14)
Resultado: 3

fn: round( num ) Arredonda o argumento número para o inteiro mais próximo

Exemplo: round(3.14)
Resultado: 3

fn:round-half-to- even() Exemplo: rodada meia-a- even(0.5)
Resultado: 0

Exemplo: rodada meia-a- even(1.5)
Resultado: 2

Exemplo: rodada meia-a- even(2.5)
Resultado: 2

Funções em cordas

Nome Descrição
fn: string( arg ) Retorna o valor da cadeia do argumento. O argumento poderia ser um número, booleano, ou nó-set

Exemplo: string(314)
Resultado: "314"

fn:codepoints-to- string(( int,int,... ) ) Cria uma cadeia de uma seqüência de pontos de código Unicode Padrão

Exemplo: Codepoints-a- string((84, 104, 233, 114, 232, 115, 101) )
Resultado: 'Thrse'

fn:string-to- codepoints( string ) Retorna a seqüência de Unicode pontos de código padrão de uma string

Exemplo: cadeia-a-ponto codepoints("Th r se")
Resultado: (84, 104, 233, 114, 232, 115, 101)

fn:codepoint- equal( comp1,comp2 ) Retorna true se o valor de comp1 é igual ao valor de comp2, de acordo com o ponto de agrupamento de código Unicode (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , caso contrário, ele retorna false
fn: compare( comp1,comp2 )
fn: compare( comp1,comp2,collation )
Retorna -1 se comp1 é inferior a comp2, 0 se comp1 é igual a comp2, ou um se comp1 é maior do que comp2 (de acordo com as regras do agrupamento que é usada)

Exemplo: compare('ghi', 'ghi')
Resultado: 0

fn: concat( string,string,... ) Retorna a concatenação das cordas

Exemplo: concat('XPath ','is ','FUN!')
Resultado: 'XPath é FUN!'

fn:string- join( (string,string,...) ,sep) Retorna uma string criado por concatenando os argumentos de seqüência e usando o argumento de setembro como o separador

Exemplo: String join(('We', 'are', 'having', 'fun!') , ' ')
Resultado: "Nós estamos tendo o divertimento! '

Exemplo: String join(('We', 'are', 'having', 'fun!') )
Resultado: 'Wearehavingfun!'

Exemplo: string- join(() , 'setembro')
Resultado: ''

fn: substring( string,start,len )
fn: substring( string,start )
Retorna a substring da posição inicial para o comprimento especificado. Índice do primeiro caractere é de 1. Se length for omitido ele retorna o substring da posição inicial até o fim

Exemplo: substring('Beatles',1,4)
Resultado: 'Beat'

Exemplo: substring('Beatles',2)
Resultados: 'eatles'

fn:string- length( string )
fn:string- length()
Retorna o comprimento da seqüência especificada. Se não houver nenhum argumento string que retorna o comprimento do valor de cadeia do nó atual

Exemplo: string- length('Beatles')
Resultado: 7

fn:normalize- space( string )
fn:normalize- space()
Remove ataque e de fuga a partir de espaços a sequência especificada, e substitui todas as sequências internas do espaço em branco com uma e devolve o resultado. Se não houver nenhum argumento string ele faz o mesmo no nó atual

Exemplo: normalize- space(' The XML ')
Resultado: 'O XML'

fn:normalize- unicode()
fn:upper- case( string ) Converte o argumento string para maiúsculas

Exemplo: maiúsculas case('The XML')
Resultado: 'O XML'

fn:lower- case( string ) Converte o argumento string para minúsculas

Exemplo: lower- case('The XML')
Resultado: 'xml'

fn: translate( string1,string2,string3 ) Converte string1 trocando os caracteres em string2 com os personagens em string3

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: escapar- uri("http://example.com/test#car", true() )
Resultado: "http%3A%2F%2Fexample.com%2Ftest#car"

Exemplo: escapar- uri("http://example.com/test#car", false() )
Resultado: "http://example.com/test#car"

Exemplo: escapar-uri ("http://example.com/~b b ", false() )
Resultado: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) Retorna verdadeiro se string1 contém string2, caso contrário ele retorna falso

Exemplo: contains('XML','XM')
Resultado: true

fn:starts- with( string1,string2 ) Retorna verdadeiro se string1 começa com string2, caso contrário ele retorna falso

Exemplo: starts- with('XML','X')
Resultado: true

fn:ends- with( string1,string2 ) Retorna verdadeiro se string1 termina com string2, caso contrário ele retorna falso

Exemplo: ends- with('XML','X')
Resultado: false

fn:substring- before( string1,string2 ) Retorna o início da string1 antes string2 ocorre na mesma

Exemplo: substring- before('12/10','/')
Resultado: '12'

fn:substring- after( string1,string2 ) Retorna o resto de string1 depois string2 ocorre na mesma

Exemplo: substring- after('12/10','/')
Resultado: '10'

fn: matches( string,pattern ) Retorna true se o argumento string corresponde ao padrão, caso contrário, ele retorna false

Exemplo: matches("Merano", "ran")
Resultado: true

fn: replace( string,pattern,replace ) Retorna uma string que é criado, substituindo o padrão fornecido com o argumento de substituir

Exemplo: replace("Bella Italia", "l" , "*")
Resultado: 'Seja ** um 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 para anyURI

Nome Descrição
fn:resolve- uri( relative,base )

Funções em valores booleanos

Nome Descrição
fn: boolean( arg ) Retorna um valor booleano para um número, corda, ou nó-set
fn: not( arg ) O argumento é primeiro reduzido para um valor booleano, aplicando o boolean() função. Retorna TRUE se o valor booleano falso, e falso se o valor booleano é verdadeiro

Exemplo: not(true() )
Resultado: false

fn: true() Retorna o valor booleano verdadeiro

Exemplo: true()
Resultado: true

fn: false() Retorna o valor booleano falso

Exemplo: false()
Resultado: false

Funções em durações, datas e horários

Funções de extração de componentes sobre durações, datas e horários

Nome Descrição
fn: dateTime( date,time ) Converte os argumentos para uma data e uma hora
fn:years-from- duration( datetimedur ) Retorna um inteiro que representa o componente anos na representação lexical canônica do valor do argumento
fn:months-from- duration( datetimedur ) Retorna um inteiro que representa o componente meses na representação lexical canônica do valor do argumento
fn:days-from- duration( datetimedur ) Retorna um número inteiro que representa o componente dias na representação lexical canónica do valor do argumento
fn:hours-from- duration( datetimedur ) Retorna um número inteiro que representa o componente horas na representação lexical canónica do valor do argumento
fn:minutes-from- duration( datetimedur ) Retorna um número inteiro que representa o componente minutos na representação lexical canónica do valor do argumento
fn:seconds-from- duration( datetimedur ) Retorna um decimal que representa o componente segundos na representação lexical canônica do valor do argumento
fn:year-from- dateTime( datetime ) Retorna um inteiro que representa o componente ano no valor localizado do argumento

Exemplo: de- anos dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Resultado: 2005

fn:month-from- dateTime( datetime ) Retorna um inteiro que representa o componente mês no valor localizado do argumento

Exemplo: mês-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Resultado: 01

fn:day-from- dateTime( datetime ) Retorna um inteiro que representa o componente dia no valor localizado do argumento

Exemplo: dia-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Resultado: 10

fn:hours-from- dateTime( datetime ) Retorna um número inteiro que representa o componente horas no valor localizada do argumento

Exemplo: hora-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Resultado: 12

fn:minutes-from- dateTime( datetime ) Retorna um número inteiro que representa o componente minutos no valor localizada do argumento

Exemplo:-de- minutos dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Resultado: 30

fn:seconds-from- dateTime( datetime ) Retorna um decimal que representa o componente segundos no valor localizada do argumento

Exemplo: segundo-de- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") )
Resultado: 0

fn:timezone-from- dateTime( datetime ) Retorna o componente de fuso horário do argumento se houver
fn:year-from- date( date ) Retorna um inteiro que representa o ano no valor localizada do argumento

Exemplo: anos de- date(xs:date("2005-04-23") )
Resultado: 2005

fn:month-from- date( date ) Retorna um inteiro que representa o mês no valor localizada do argumento

Exemplo: mês-de- date(xs:date("2005-04-23") )
Resultado: 4

fn:day-from- date( date ) Retorna um inteiro que representa o dia no valor localizada do argumento

Exemplo: dia-de- date(xs:date("2005-04-23") )
Resultado: 23

fn:timezone-from- date( date ) Retorna o componente de fuso horário do argumento se houver
fn:hours-from- time( time ) Retorna um número inteiro que representa o componente horas no valor localizada do argumento

Exemplo: hora-de- time(xs:time("10:22:00") )
Resultado: 10

fn:minutes-from- time( time ) Retorna um número inteiro que representa o componente minutos no valor localizada do argumento

Exemplo:-de- minutos time(xs:time("10:22:00") )
Resultado: 22

fn:seconds-from- time( time ) Retorna um inteiro que representa o componente segundos no valor localizada do argumento

Exemplo: segundo-de- time(xs:time("10:22:00") )
Resultado: 0

fn:timezone-from- time( time ) Retorna o componente de fuso horário do argumento se houver
fn:adjust-dateTime-to- timezone( datetime,timezone ) Se o argumento do fuso horário é vazio, ele retorna um DateTime sem um fuso horário. Caso contrário, ele retorna um dateTime com um fuso horário
fn:adjust-date-to- timezone( date ,timezone ) Se o argumento do fuso horário é vazio, ele retorna uma data sem fuso horário. Caso contrário, ele retorna uma data com um fuso horário
fn:adjust-time-to- timezone( time ,timezone ) Se o argumento do fuso horário é vazio, ele retorna um tempo sem um fuso horário. Caso contrário, ele retorna um tempo com um fuso horário

Funções relacionadas com 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 em Nodes

Nome Descrição
fn: name()
fn: name( nodeset )
Retorna o nome do nó atual ou o primeiro nó no conjunto de nós especificado
fn:local- name()
fn:local- name( nodeset )
Retorna o nome do nó atual ou o primeiro nó no conjunto de nós especificado - sem o prefixo namespace
fn:namespace- uri()
fn:namespace- uri( nodeset )
Retorna o namespace URI do nó atual ou o primeiro nó no conjunto de nós especificado
fn: lang( lang ) Retorna true se o idioma do nó atual corresponde ao idioma do idioma especificado

Exemplo: Lang("en") é verdadeira para
<P xml: lang = "en"> ... </ p>

Exemplo: Lang("de") é falsa para
<P xml: lang = "en"> ... </ p>

fn: root()
fn: root( node )
Retorna a raiz da árvore para que o nó atual ou o especificado pertence. Isso geralmente será um nó de documento

Funções em seqüências

Funções Gerais em seqüências

Nome Descrição
fn:index- of( (item,item,...) ,searchitem) Retorna as posições dentro da seqüência de itens que estão igual ao argumento searchitem

Exemplo: índice-de ((15, 40, 25, 40, 10) , 40)
Resultado: (2, 4)

Exemplo: índice-de (("a", "dog" , "and" , "a" , "duck") , "uma")
O resultado (1, 4)

Exemplo: índice-de ((15, 40, 25, 40, 10) , 18)
Resultado: ()

fn: remove( (item,item,...) ,position) Devolve uma nova sequência construída a partir do valor dos argumentos de item - com o item especificado pelo argumento posição removido

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,... ) Retorna true se o valor dos argumentos é uma seqüência vazia, caso contrário ele retorna falso

Exemplo: empty(remove(("ab", "cd") , 1))
Resultado: false

fn: exists( item,item,... ) Retorna true se o valor dos argumentos NÃO É uma seqüência vazia, caso contrário ele retorna falso

Exemplo: exists(remove(("ab") , 1))
Resultado: false

fn:distinct- values( (item,item,...) ,collation) Retorna apenas distintas (different) valores

Exemplo: distinct- values((1, 2, 3, 1, 2) )
Resultado: (1, 2, 3)

fn:insert- before( (item,item,...) ,pos,inserts) Devolve uma nova sequência construída a partir do valor dos argumentos de item - com o valor do argumento inserções inserido na posição especificada pelo argumento 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 ordem inversa dos itens especificados

Exemplo: reverse(("ab", "cd" , "ef") )
Resultado: ("ef", "cd" , "ab")

Exemplo: reverse(("ab") )
Resultado: ("ab")

fn: subsequence( (item,item,...) ,start,len) Retorna uma seqüência de itens a partir da posição especificada pelo argumento de início e continuando para o número de itens especificados pelo argumento len. O primeiro ponto é localizado na posição 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 em uma ordem dependente da implementação

Funções que testam a Cardinality de Seqüências

Nome Descrição
fn:zero-or- one( item,item,... ) Retorna o argumento se ele contém um ou nenhum item, caso contrário, gera um erro
fn:one-or- more( item,item,... ) Retorna o argumento se ele contém um ou mais itens, caso contrário, gera um erro
fn:exactly- one( item,item,... ) Retorna o argumento se ele contém exatamente um item, caso contrário, gera um erro

Igual, União, interseção e Exceto

Nome Descrição
fn:deep- equal( param1,param2,collation ) Retorna true se param1 e param2 estão profundamente iguais uns aos outros, caso contrário ele retorna falso

Funções de agregação

Nome Descrição
fn: count( (item,item,...) ) Retorna a contagem de nós
fn: avg( (arg,arg,...) ) Retorna a média dos valores de argumento

Exemplo: avg((1,2,3) )
Resultado: 2

fn: max( (arg,arg,...) ) Retorna o argumento de que é maior do que os outros

Exemplo: max((1,2,3) )
Resultado: 3

Exemplo: max(('a', 'k') )
Resultado: 'k'

fn: min( (arg,arg,...) ) Retorna o argumento de que é menos do que os outros

Exemplo: min((1,2,3) )
Resultado: 1

Exemplo: min(('a', 'k') )
Resultado: 'a'

fn: sum( arg,arg,... ) Retorna a soma do valor numérico de cada nó no nó-conjunto especificado

Funções que geram Seqüências

Nome Descrição
fn: id( (string,string,...) ,node) Retorna uma seqüência de nós de elementos que têm um valor de ID igual ao valor de um ou mais dos valores especificados no argumento de cadeia
fn: idref( (string,string,...) ,node) Retorna uma seqüência de elemento ou atributo nós que têm um valor de IDREF igual ao valor de um ou mais dos valores especificados no argumento de cadeia
fn: doc( URI )
fn:doc- available( URI ) Retorna true se o doc() função retorna um nó de documento, caso contrário ele retorna falso
fn: collection()
fn: collection( string )

Funções de contexto

Nome Descrição
fn: position() Retorna a posição de índice do nó que está sendo processada

Exemplo: // livro [ position() <= 3]
Resultado: Seleciona os três primeiros elementos do livro

fn: last() Retorna o número de itens na lista de nós processados

Exemplo: // livro [ last() ]
Resultado: Seleciona o último elemento de livro

fn:current- dateTime() Retorna o atual DateTime (with timezone)
fn:current- date() Retorna a data atual (with timezone)
fn:current- time() Retorna a hora atual (with timezone)
fn:implicit- timezone() Retorna o valor do fuso horário implícito
fn:default- collation() Retorna o valor do agrupamento padrão
fn:static-base- uri() Retorna o valor da base-uri

Funções de XSLT

Além disso, existem as seguintes funções internas XSLT:

Nome Descrição
current() Retorna o nó atual
document() Usado para acessar os nós em um documento XML externo
element- available() Testa se o elemento especificado é suportado pelo processador XSLT
format- number() Converte um número em uma string
function- available() Testa se a função especificada é suportada pelo processador XSLT
generate- id() Retorna um valor string que identifica exclusivamente um nó especificado
key() Retorna um conjunto de nós usando o índice especificado por um <xsl:key> elemento
system- property() Retorna o valor das propriedades do sistema
unparsed-entity- uri() Retorna o URI de uma entidade não analisada