Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

Функция normalize-space

string normalize-space(string?)

Функция

normalize-space
производит со своим строковым аргументом так называемую нормализацию пробельного пространства. Это означает, что в строке удаляются ведущие и заключающие пробельные символы, а все последовательности пробелов заменяются одним пробельным символом. Иными словами, функция удаляет "лишние" пробелы в строке.

Если аргумент функции опущен, она выполняется со строковым значением контекстного узла.

Примеры

normalize-space(' А - В - С ')
→
'А-В-С'

normalize-space('А &#х9; В &#х9; С') > 'A B C'

Функция translate

string translate(string, string, string)

Функция

translate
производит замену символов первого своего строкового аргумента, которые присутствуют во втором аргументе на соответствующие символы третьего аргумента.

Пример

translate('abcdefgh', 'aceg', 'ACEG')
→
'AbCdEfGh'

Если некоторый символ повторяется во втором аргументе несколько раз, учитывается только первое его появление.

Пример

translate('abcdefgh', 'acaeaga', 'ACBECGD')
→
'AbCdEfGh'

Если второй аргумент длиннее третьего, символы, для которых нет соответствующей замены, удаляются из строки.

Пример

translate('a b-c=d+e|f/g\h', 'aceg-=+|/\', 'ACEG')
→
'AbCdEfGh'

Если третий аргумент длиннее второго, остаток строки игнорируется.

Пример

translate('abcdefgh', 'aceg', 'ACEGBDFH')
→
' AbCdEfGh'

Функцию

translate
можно использовать, например, для изменения регистра символов. Конечно, это будет работать только для тех языков, для которых такая функция будет записана, но и этого в большинстве случаев будет достаточно. В будущем предполагается включить в новые версии языка более мощные функции для работы с регистрами символов.

Пример

Для того чтобы изменять регистр слов русского языка, мы можем определить две переменные,

lowercase
и
uppercase
, которые будут содержать строчные и прописные символы основного русского алфавита (мы включили в него букву ё — строчную ("
ё
") и прописную ("
Ё
"), хотя в соответствии с Unicode она относится к расширениям). Мы также создадим два именованных шаблона, которые будут менять регистр символов строкового параметра
str
. Для удобства использования мы вынесем определения переменных и шаблонов во внешний модуль
ru.xsl
.

Листинг 6.6. Преобразование ru.xsl

<xsl:stylesheet

 version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:variable

name="uppercase"

select="concat('&#x410;&#x411;&#x412;&#x413;',

'&#x414;&#x415;&#x401;&#x416;&#x417;',

'&#x418;&#x419;&#x41A;&#x41B;',

'&#x41C;&#x41D;&#x41E;&#x41F;',

'&#x420;&#x421;&#x422;&#x423;',

'&#x424;&#x425;&#x426;&#x427;',

'&#x428;&#x429;&#x42A;&#x42B;',

'&#x42C;&#x42D;&#x42E;&#x42F;')"/>

 <xsl:variable

name="lowercase"

select="concat('&#x430;&#x431;&#x432;&#x433;',

'&#x434;&#x435;&#x451;&#x436;&#x417;',

'&#x438;&#x439;&#x43A;&#x43B;',

'&#x43C;&#x43D;&#x43E;&#x43F;',

'&#x440;&#x441;&#x442;&#x443;',

'&#x444;&#x445;&#x446;&#x447;',

  • Читать дальше
  • 1
  • ...
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: