Функция ms:string-compare
Выполняет сравнение строк. Необходимость этой функции обусловлена невозможностью выполнить лексикографическое сравнение двух строк при помощи XPath.
number ms:string-compare(string x, string y, [,string language _
[,string options]])
Параметры
- x типа string
Строковое значение для сравнения. Нестроковые значения преобразуются в строковые перед сравнением.
- y типа string
Строковое значение для сравнения. Нестроковые значения преобразуются в строковые перед сравнением.
- язык строки[необязательно]
Задает язык для определения порядка сортировки. Это похоже на атрибут<xsl:sort> lang
(например,"ru-RU"
или"fr-CA"
). Если данный параметр пропущен или является пустой строкой, то язык определяется системной средой (язык текущего потока).
параметры строки[необязательно]
По умолчанию при сравнении учитывается регистр, причем сначала идет нижний регистр.параметр описание u
При сравнении учитывается регистр. Первым идет верхний регистр.
i
При сравнении регистр не учитывается для всех обычных различий между символами, такими как регистр, тип японской азбуки и ширина символов. (Ширина символов сравнивается только в некоторых языках).
Возвращаемые значения
Возвращает одно из следующих трех числовых значений.
Если | Образец функции возвращает |
---|---|
x < y |
-1 |
x = y |
0 |
x > y |
1 |
Замечания
Сравнение строк выполняется в лексикографическом (словарном) порядке. При указании неподдерживаемого языка или параметра происходит ошибка выполнения. Для компонентов MSXML возвращается E_FAIL.
Пример
В следующем примере кода показано сравнение двух строк с помощью функции ms:string-compare
. В этом примере сравниваются три строки чисел («1», «2» и«3») с «2». Результаты сравнения показаны в таблице, которая находится сразу за кодом.
XML-файл
XSLT-файл (translate.xslt)
Результаты сравнения.
x, y | Результат |
---|---|
"1" , "2" |
-1 |
"2" , "2" |
0 |
"3" , "2" |
1 |
См. также
Справочник
Справочник по схемам XML (XSD)
Справочник по типам данных XML