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


Авторские права

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

Здесь можно скачать бесплатно "Алексей Валиков - Технология XSLT" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство БХВ-Петербург, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Алексей Валиков - Технология XSLT
Рейтинг:
Название:
Технология XSLT
Издательство:
БХВ-Петербург
Год:
2002
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Технология XSLT"

Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.



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

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






где тип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 $var → true

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

false() and $var → false

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

Функция lang

boolean lang(string)

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

<text xml:lang="en-gb">

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

</text>

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

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

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

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

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

Примеры:

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

<body xml:lang="EN"/>

<body xml:lang="en-GB"/>

<body xml:lang="en-us"/>

<body xml:lang="EN-US"/>

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

<а>

 <b xml:lang="de">

  <c xml:lang="en"/>

 </b>

</a>

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

Функция number

number number(object?)

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

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

□ Строковое значение преобразуется в число, которое оно представляет.

□ Множество узлов сначала преобразуется в строку, а затем, как строка в число. Фактически численным значением множества узлов является численное значение его первого узла.

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

Примеры

number($to_be or not($to_be)) → 1

Значение этого выражения будет 1, поскольку $to_be or not($to_be) будет истинным вне зависимости от значения переменной to_be.

number(false()) → 0

number('00015.0001000') → 15.0001

number('.0001000') → 0.0001

number('1.') → 1

number('-.1') → -0.1

number('-5') → -5

Функция sum

number sum(node-set)

Функция sum суммирует значения узлов из переданного ей множества. Строковые значения узлов сначала преобразуются в числа, а затем все полученные числа складываются.

Пример Листинг 6.3. Входящий документ

<list>

 <item>1</item>

 <item>3</item>

 <item>5</item>

</list>

Листинг 6.4. Преобразование

<xsl:stylesheet

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

 version="1.0">


 <xsl:template match="list">

  <xsl:copy>

   <xsl:apply-templates/>

  </xsl:copy>

 </xsl:template>


 <xsl:template match="item">

  <sum>

   <xsl:value-of select="sum(preceding-sibling::item|.)"/>

  </sum>

 </xsl:template>


</xsl:stylesheet>

Листинг 6.5. Результат

<list>

 <sum>1</sum>

 <sum>4</sum>

 <sum>9</sum>


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Технология XSLT"

Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Алексей Валиков

Алексей Валиков - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Алексей Валиков - Технология XSLT"

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

А что Вы думаете о книге? Оставьте Ваш отзыв.