Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-05.doc
Скачиваний:
6
Добавлен:
12.05.2015
Размер:
645.12 Кб
Скачать

5.1.1.4.3. Строковые функции

В XPathи XQuery определены следующие типы строковых функций:

  • функции сборки-разборки строк;

  • функции сравнения строк;

  • функции строковых значений;

  • функции поиска соответствия в строках;

  • функции с использованием шаблонов регулярных выражений.

5.1.1.4.3.1. Функции сборки-разборки строк

Функция

fn:codepoints-to-string($arg as xs:integer*) as xs:string

создает строку из заданных в десятичных кодов Unicode, а функция

fn:string-to-codepoints($arg as xs:string?) as xs:integer*

выполняет обратное преобразование

Примеры использования функций сборки-разборки строк:

1. fn:codepoints-to-string((1071,1079,1096,1082,32,104,96,

129,116,104))– преобразует коды символов, заданные в аргументе, в строку "Язык XPath".

2. fn:string-to-codepoints("Язык XPath")– преобразует коды символов, заданные в аргументе, в последовательность(1071,1079,1096,1082,32,

104,96,129,116,104).

5.1.1.4.3.2. Функции сравнения строк

Функция

fn:compare($comparand1 as xs:string?,

$comparand2 as xs:string?) as xs:integer?

сравнивает две строки и возвращает -1, если первая строка меньше второй,0, если строки равны и1, если первая строка больше второй.

Функция

fn:codepoint-equal($comparand1 as xs:string?,

$comparand2 as xs:string?) as xs:boolean?

возвращает trueилиfalseв зависимости от того, равны или не равны последовательности кодовUnicode, составляющие строки $comparand1и$comparand2.

Примеры использования функций сравнения строк:

1. fn:compare("abc", "acd")– возвращает значение-1.

2. fn:codepoint-equal("abc", "acd") – возвращает значениеfalse.

5.1.1.4.3.3. Функции строковых значений

В XPathопределены следующие основные функции для строковых значений:

  • fn:string-length($arg as xs:string?) as xs:integer– возвращает количество символов в строке;

  • fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?, ... ) as xs:string– возвращает строку-конкатенацию всех строк, заданных в качестве аргументов;

  • fn:string-join($arg1 as xs:string*, $arg2 as xs:string) as xs:string– возвращает строку-конкатенацию всех строк, причем в качестве разделителя между аргументами в строке используется строка, заданная в$arg2;

  • fn:substring($sourceString as xs:string?, $startingLoc as xs:double, $length as xs:double) as xs:string– возвращает подстроку строки$sourceString, начиная с индекса$startingLoc длиной$length(если третий аргумент не задан, возвращается подстрока до конца строки). Нумерация индексов в строке начинается с 1;

  • fn:normalize-space($arg as xs:string?) as xs:string– возвращает нормализованную строку, т.е. строку, в которой удалены все начальные и конечные пробелы, а все пробелы, количество которых внутри строки больше одного, сокращены до одного пробела;

  • fn:upper-case($arg as xs:string?) as xs:string– возвращает строку, в которой все строчные буквенные символы заменены заглавными буквами;

  • fn:lower-case($arg as xs:string?) as xs:string– возвращает строку, в которой все заглавные буквенные символы заменены строчными буквами;

  • fn:translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string– заменяет в строке$argвсе вхождения символа в i-ой позиции в$mapStringсимволом в i-ой позиции в$transString.

Примеры использования функций для строковых значений:

1. fn:string-length("abc") – возвращает число3.

2. fn:concat("The"," ", "XML") – возвращает строку"The XML".

3. fn:string-join("ab","cd","e",":") – возвращает строку"ab:cd:e".

4. fn:substring("abcdef",3,2) – возвращает строку"cd".

5. fn:substring("abcdef",3) – возвращает строку"cdef".

6. fn:normalize-space(" ab cd ef ") – возвращает строку

"ab cd ef").

7. fn:upper-case("ABc") – возвращает строку "ABC".

8. fn:lower-case("ABc") – возвращает строку "abc".

9. fn:translate("ABc","Ac","aC") – возвращает строку "aBC".

Соседние файлы в папке Лекции