.. _compare: ======= 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. .. list-table:: :widths: 40 60 :header-rows: 1 * - **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. .. list-table:: :widths: 25 25 50 :header-rows: 1 * - **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. Veja também ~~~~~~~~~~~ .. toctree:: :titlesonly: :glob: * :ref:`codepoint-equal`.