compare
Compara duas strings
Descrição
A função fn:compare devolve um destes valores:
-1 se $comparand1 for menor que $comparand2
0 se $comparand1 for igual a $comparand2
1 se $comparand1 for maior que $comparand2
Uma string é maior que outra se começar com ela e tiver caracteres a mais. Por exemplo, abc é maior que ab.
Os operadores de comparação (=, !=, <, <=, >, >=) também comparam strings, e a sintaxe pode ser mais prática. Mas, se você precisar de uma collation diferente da padrão, tem que usar fn:compare.
Parâmetros |
Descrição |
|---|---|
comparand1:string() |
a primeira string a comparar |
comparand2:string() |
a segunda string a comparar |
collation:string() |
a collation usada para comparar |
Exemplos
Estes exemplos supõem que não há collation padrão definida.
XPath |
Resultado |
Explicação |
|---|---|---|
compare('a', 'b') |
-1 |
'a' vem antes de 'b'. |
compare('a', 'a') |
0 |
As strings são iguais. |
compare('b', 'a') |
1 |
'b' vem depois de 'a'. |
compare('ab', 'abc') |
-1 |
Uma string vem antes de outra mais longa que começa com ela. |
compare('a', 'B') |
1 |
Mostra que, na collation simples por code point, o a minúsculo vem depois do B maiúsculo. |
compare(upper-case('a'), upper-case('B')) |
-1 |
Passar as duas para maiúsculas antes faz a comparação ignorar a caixa. |
compare('a', ()) |
() |
Se um dos argumentos for a sequência vazia, o resultado é a sequência vazia. |
compare('Strasse', 'Straße', 'http://datypic.com/german') |
0 |
Se a collation considerar o ß igual a dois s. |
compare('a', 'b', 'FOO') |
Error FOCH0002 |
FOO não é uma collation suportada. |