Алексей Валиков - Технология XSLT

Тут можно читать онлайн Алексей Валиков - Технология XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство БХВ-Петербург, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Технология XSLT
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2002
  • Город:
    Санкт-Петербург
  • ISBN:
    нет данных
  • Рейтинг:
    4.75/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Алексей Валиков - Технология XSLT краткое содержание

Технология XSLT - описание и краткое содержание, автор Алексей Валиков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.

Для начинающих и профессиональных программистов

Технология XSLT - читать онлайн бесплатно полную версию (весь текст целиком)

Технология XSLT - читать книгу онлайн бесплатно, автор Алексей Валиков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Однако вместо требуемой последовательности мы получим последовательность строчных римских цифр: i, ii, iiiи так далее. Иными словами, некоторые форматирующие токены определяют нумерующую последовательность двусмысленно: одним вариантом является алфавитная последовательность, начинающаяся этим токеном, другим — некая традиционная для данного языка (например, последовательность римских цифр для английского).Для того чтобы различать эти последовательности в двусмысленных ситуациях, в xsl:numberсуществует атрибут letter-value. Если его значением является "alphabetic", нумерующая последовательность является алфавитной, значение "traditional"указывает на то, что следует использовать традиционный для данного языка способ. Если атрибут letter-valueопущен, процессор может сам выбирать между алфавитным и традиционным способами нумерации.

При использовании цифровых форматов нумерации (иными словами, токенов вида 1, 01, 001и так далее) цифры в номере можно разделить на группы, получив, например, такие номера как " 2.00.00" из 20000или " 0-0-0-2" из 2. Для этой цели в xsl:numberиспользуется пара атрибутов grouping-separatorи grouping-size.

Атрибут grouping-separatorзадает символ, который следует использовать для разбивки номера на группы цифр, в то время как grouping-sizeуказывает размер группы. Эти атрибуты всегда должны быть вместе — если хотя бы один из них опущен, второй просто игнорируется.

Пример

Элемент xsl:numberвида

format="[00000001]"

grouping-separator="."

grouping-size="2"/>

будет генерировать номера в следующей последовательности:

1'[00.00.00.01]'

2'[00.00.00.02]'

...

999'[00.00.09.99]'

1000'[00.00.10.00]'

Пожалуй, следует упомянуть, что в значениях атрибутов format, lang, l etter-value, grouping-sizeи grouping-separatorмогут быть указаны шаблоны значений, иными словами могут использоваться выражения в фигурных скобках. Это может быть полезно, например, для того, чтобы сгенерировать форматирующие токены во время выполнения преобразования.

Пример

В следующем шаблоне формат номера секции зависит от значения атрибута formatее родительского узла:

format="{../@format}-1 "

level="multiple"

count="chapter|section"/>

При обработке входящего документа

нумерация секций будет выглядеть как

I-1 First Section

I-2 Second Section

I-3 Third Section

Если же атрибут formatэлемента chapterбудет иметь значение 1, секции будут пронумерованы в виде

1-1 First Section

1-2 Second Section

1-3 Third Section

Форматирование чисел

Мы уже познакомились с функцией языка XPath string, которая конвертирует свой аргумент в строку. Эта функция может преобразовать в строку и численное значение, но возможности ее при этом сильно ограничены.

К счастью, XSLT предоставляет мощные возможности для форматирования строкового представления чисел при помощи функции format-numberи элемента xsl:decimal-format.

Функция format-number

Запись функции имеет следующий вид:

string format-number( number , string , string ?)

Функция format-numberпринимает на вход три параметра. Первым параметром является число, которое необходимо преобразовать в строку, применив при этом форматирование. Вторым параметром является образец, в соответствии с которым будет форматироваться число. Третий параметр указывает название десятичного формата, который следует применять.

Образец форматирования в XSLT определяется точно так же, как в классе DecimalFormatязыка Java. Для того чтобы читателю, не знакомому с Java, не пришлось изучать документацию этого языка, мы приведем полный синтаксис образцов форматирования. Продукции образца форматирования мы будем помечать номерами с префиксом NF, чтобы не путать их с другими продукциями.

Прежде всего, образец форматирования может состоять из двух частей: первая часть определяет форматирование положительного числа, вторая часть — отрицательного. Запишем это в виде EBNF-продукции:

[NF 1] NFPattern ::= NFSubpattern (NFSubpatternDelim NFSubpattern)?

Двум частям образца форматирования соответствуют нетерминалы NFSubpattern, которые разделены нетерминалом NFSubpatternDelim.

В случае если вторая часть образца форматирования опушена, отрицательные числа форматируются точно так же, как и положительные, но им предшествует префикс отрицательного числа (по умолчанию — знак "минус", " -").

Примеры

format-number(1234.567,'#.00;negative #.00')'1234.57'

format-number(-1234.567,'#.00/negative #.00')'negative 1234.57'

format-number(-1234.567,'#.00')'-1234.57'

Каждая из частей образца форматирования состоит из префикса ( NFPrefix), целой части ( NFInteger), необязательной дробной части ( NFFractional) и суффикса ( NFSuffix).

[NF 2] NFSubpattern ::= NFPrefix NFinteger NFFractional? NFSuffix

Префикс или суффикс образца форматирования могут содержать символ процента. Если суффикс содержит символ процента, число должно быть умножено на 100и выведено со знаком процента. Наличие символа процента в префиксе на форматирование не влияет.

Пример

format-number(0.45,'0.00%')'45.00%'

format-number(0.45,'0.##%')'45.00%'

format-number(0.45678,'%0.00')'%0.46'

format-number(0.45678,'0.####%')'45.678%'

Префикс задает строку, которая будет предшествовать числу, это может быть последовательность любых неформатирующих символов ( NFChar) плюс символ процента ( NFPercent). Аналогично, суффикс будет следовать за числом, и он тоже не может содержать форматирующих символов (за исключением символа процента).

[NF 3] NFPrefix ::= (NFChar NFPercent?)*

[NF 4] NFSuffix ::= (NFChar NFPercent?)*

Пример

Если мы хотим заключить наше число, к примеру, в квадратные скобки, мы должны будем включить в его образец форматирования префикс " [" и суффикс " ]":

format-number(123456, '[#]')'[123456]'

Нетерминал NFintegerопределяет, как будет выглядеть целая часть числа. Он начинается несколькими символами NFOptDigit(по умолчанию " #"), показывающими позиции, в которых цифры необязательны, и состоит из символов NFReqDigit(по умолчанию " 0"), показывающих позиции обязательных цифр, а также символа NFGroupDelim(по умолчанию " ,"), показывающего позицию символа-разделителя групп цифр.

[NF 5] NFInteger ::= NFOptDigit*

(NFReqDigit* NFGroupDelim

| NFGroupDelim NFOptDigit*)?

NFReqDigit+

Примеры

format-number(1234.56,'#0000')'1235'

format-number(1234.56,'00000')'01235'

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Алексей Валиков читать все книги автора по порядку

Алексей Валиков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Технология XSLT отзывы


Отзывы читателей о книге Технология XSLT, автор: Алексей Валиков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x