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

Здесь есть возможность читать онлайн «Алексей Валиков - Технология XSLT» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2002, Издательство: БХВ-Петербург, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Технология XSLT: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Технология XSLT»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Технология XSLT», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

a

b

c

1

2

3

Элемент valuesвыходящего документа содержит множество, являющееся результатом вычисления выражения (string | number)/value. Это будет множество элементов value, принадлежащих элементам stringили number.

Объединение множеств

Единственная операция над множествами, которая определена в XSLT, — это операция объединения. Если $nodeset1и $nodeset2— два множества узлов, то результатом вычисления

$nodeset1 | $nodeset2

будет множество узлов, которые принадлежат хотя бы одному из этих множеств.

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

'а' | body/a

не добавит текстовый узел " а" к множеству элементов а, принадлежащих элементу body— оно просто будет некорректным.

Арифметические операции

Четыре основные бинарные операции — " +", " -", " div", " mod" и пятая, унарная операция отрицания " -" обеспечивают в XSLT основные арифметические действия. Поскольку любой из типов данных может быть преобразован в численный тип, в качестве операндов арифметических операций можно использовать что угодно — например, вычитать из строки булевое выражение:

'0.5' - true()-0.5

Следует осторожно обращаться со знаком " -". Имена элементов и атрибутов могут включать этот знак и поэтому выражение first-lastбудет воспринято не как разность значений элементов firstи last, а как путь выборки элементов с именами " first-last". Для того чтобы избежать таких казусов, операторы всегда следует выделять пробелами:

first - last

Операции сравнения

В XSLT имеются следующие шесть операторов сравнения:

□ " =" — равно;

□ " !=" — не равно;

□ " <" меньше;

□ " >" больше;

□ " <=" меньше или равно (не больше);

□ " >=" больше или равно (не меньше).

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

Операции сравнения определяются в спецификации в три этапа:

□ сначала сравнение, в котором участвуют множества узлов, определяется в терминах сравнения более простых типов данных;

□ затем для простых типов данных определяются равенство (" =") и неравенство (" !=");

□ наконец, для простых типов данных определяются сравнения " <", " <=", " >", " >=".

Сравнение, хотя бы один из операндов которого является множеством узлов, определяется следующим образом:

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

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

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

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

Примеры выражений, которые мы будем приводить, будут использовать следующий входящий документ (листинг 3.25).

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

0.5

50%

1/2

0.5

1.0

1.5

Примеры сравнений множества узлов с булевым значением:

/values/string = true()true

В этом равенстве множество узлов сравнивается с булевым значением "истины". Множество узлов, выбираемое путем /values/string, приводится к булевому типу. Результатом приведения будет "истина", поскольку множество элементов string, принадлежащих элементу values, непусто. Таким образом, сравнение является проверкой на равенство двух "истин" — и результат, естественно, тоже будет "истиной".

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Технология XSLT» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Стивен Холзнер - XSLT
Стивен Холзнер
Алексей Сахарков - Технология террора
Алексей Сахарков
Отзывы о книге «Технология XSLT»

Обсуждение, отзывы о книге «Технология XSLT» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x