Алексей Валиков - Технология 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 - читать книгу онлайн бесплатно, автор Алексей Валиков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Прежде, чем разбирать функции, рассмотрим синтаксис их вызова. Он описывается правилом FunctionCall:

[XP16] FunctionCall ::= FunctionName

'(' ( Argument ( ',' Argument )* )? ')'

Таким образом, вызов функции состоит из имени и перечисленных в круглых скобках аргументов, которых может в принципе и не быть. С точки зрения синтаксиса аргументом функции может быть любое выражение, однако на практике функции предъявляют к своим аргументам определенные требования. Мы будем записывать правила вызова той или иной функции прототипом вида

тип1 функция( тип2 , тип3 , тип4 ?)

где тип1 — тип возвращаемого значения, тип2 , тип3 , тип4 — типы передаваемых параметров, символ " ?" обозначает аргумент, который может быть опущен. Также может быть использован символ *для обозначения аргумента, который может повторяться несколько раз. Например,

string concat(string, string, string*)

определяет функцию concat, которая возвращает строку, а на вход принимает два или более строковых параметра.

Аргументы функции отвечают EBNF-продукции Argument:

[XP17] Argument ::= Expr

Имя функции определяется синтаксическим правилом FunctionName. Функция может иметь любое корректное с точки зрения XML имя, кроме названий типов узлов ( comment, processing-instruction, textи node):

[XP35] FunctionName ::= QName - NodeType

В базовой библиотеке XPath выделяют четыре типа функций: функции для работы с булевыми значениями, с числами, со строками и с множествами узлов.

Булевые функции

Функция boolean

boolean boolean( object )

Функция booleanявным образом преобразует объект, который ей передается в булевый тип в соответствии с правилами, изложенными в главе "Типы данных XPath" . Напомним вкратце эти правила.

□ Число преобразуется в "ложь", если оно является положительным или отрицательным нулем или не-числом ( NaN). В противном случае число будет преобразовано в "истину".

□ Строка преобразуется в "ложь", если она не содержит символов, то есть, ее длина равна нулю. Непустая строка преобразуется в "истину".

□ Множество узлов преобразуется в "ложь", если оно пусто. Непустое множество узлов преобразуется в "истину".

□ Объекты других типов преобразуются в булевые значения по собственным правилам. Например, результирующий фрагмент дерева всегда преобразуется в "истину".

Примеры:

boolean(2-2)false

boolean(number('two'))false

boolean(-1)true

boolean(1 div 0)true

boolean(-1 div (1 div 0))false

boolean(-1 div (-1 div 0))false

boolean(-1 div (-1 div 0) +1)true

boolean('')false

boolean('true')true

boolean('false')true

boolean(/)true

Это выражение всегда будет обращаться в true, поскольку у документа всегда есть корневой узел.

boolean(/self::node())true

Это выражение также обратится в true, поскольку корневой узел соответствует тесту node().

boolean(/self::text())false

Это выражение обратится в false, поскольку корневой узел не является текстовым узлом.

Функция not

boolean not( boolean )

Функция notвыполняет логическое отрицание. Если аргументом была "истина", notвозвращает "ложь", если аргумент был "ложью", notвернет "истину". Если функции был передан аргумент не булевого типа (например, число), то он сначала будет сконвертирован в тип boolean.

Примеры:

not(false)true

not(true)false

not('false')false

not('true')false

not(0)true

not(/)false

Функции true и false

boolean true()

boolean false()

Две функции trueи falseвозвращают тождественную "истину" и тождественную "ложь" соответственно. В XPath нет констант и, тем более, логических констант, определяющих "истину" и "ложь", как в других языках. Функции trueи falseвосполняют эту нехватку.

Примеры:

true() or $vartrue

Это выражение всегда будет истинным вне зависимости от значения переменной var, поскольку дизъюнкция (логическая операция "или") с тождественной "истиной" всегда будет "истиной".

false() and $varfalse

Это выражение всегда будет ложным вне зависимости от значения переменной var, поскольку конъюнкция (логическая операция "и") с тождественной "ложью" всегда будет "ложью".

Функция lang

boolean lang( string )

Функция langможет использоваться для того, чтобы определить языковой контекст контекстного узла. В элементах XML можно использовать атрибут langпространства имен xmlдля определения языка содержимого узла, например;

Yet no living human being have been ever blessed with seeing...

Пространство имен, соответствующее префиксу xml, не требуется объявлять. Это служебное пространство имен, которое неявно задано во всех XML-документах.

Функция langвозвратит "истину", если идентификатор языка, который передан ей в виде строкового параметра, соответствует языковому контексту контекстного узла. Это определяется следующим образом.

□ Если ни один из предков контекстного узла не имеет атрибута xml:lang, функция возвращает "ложь".

□ Иначе строковый параметр проверяется на соответствие значению атрибута xml:langближайшего предка. Если эти значения равны в любом регистре символов, или атрибут начинается как значение параметра функции и имеет суффикс, начинающийся знаком " -", функция возвращает "истину".

□ В противном случае функция возвращает "ложь".

Примеры:

Функция lang('en')возвратит "истину" в контексте любого из следующих элементов:

Функция lang('de')возвратит "истину" в контексте элемента bи "ложь" — в контексте элементов аи с:

<���а>

Числовые функции

Функция number

number number( object ?)

Функция numberявным образом конвертирует свой аргумент в числовой тип. Если аргумент не указан, функции передается множество узлов, состоящее из единственного контекстного узла. Коротко напомним правила преобразования в числовой тип.

□ Значения булевого типа преобразуются в 0или 1следующим образом: "ложь" преобразуется в 0, "истина" в 1.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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