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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Множества узлов можно сравнивать при помощи операторов " =" (равно) и " !=" (не равно). В отличие от равенства математических множеств, равенство множеств узлов Aи Bв XSLT означает то, что найдется узел a , принадлежащий множеству Aи узел b , принадлежащий множеству Bтакие, что их строковые значения будут равны. Неравенство множеств означает наличие в них как минимум пары узлов с различными строковыми представлениями. Такие определения делают возможным при сравнении двух множеств одновременное выполнение равенства и неравенства.

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

1

2

2

3

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

version="1.0"

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

and

Результатом этого преобразования будет строка:

true and true

Этот пример показывает, что множество дочерних элементов intэлемента numbersодновременно считает как равным, так и неравным множеству дочерних элементов byte.

Приведем еще несколько примеров.

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

1

2

3

4

Результат:

false and true

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

1

1

1

Результат:

true and false

С математической точки зрения операции сравнения множеств определены в XSLT, мягко говоря, странно. Например, единственный случай, когда для двух множеств не будет выполняться неравенство (" !=") — это когда все узлы обоих множеств будут иметь одинаковое строковое представление. Вместе с тем, операции сравнения множеств очень часто используются в качестве условий и потому нужно хорошо понимать различия между ними и математическими операциями сравнения.

XSLT определяет единственную операцию над множествами — операцию объединения " |". Выражение " $A | $B" возвратит множество узлов, присутствующих либо в $A, либо в $B, либо и там, и там.

В XSLT нет встроенного оператора, который позволил бы установить принадлежность узла некоторому множеству. Для этой цели используется очень хитроумный прием, основанный на использовании функции count, которая возвращает количество узлов множества. Представим, что множество $nodeсодержит некоторый узел, и мы хотим проверить, входит ли он во множество $nodeset. Сделать это можно при помощи выражения

count($nodeset) = count($node | $nodeset)

которое будет истинным тогда и только тогда, когда $nodeполностью принадлежит $nodeset.

Этот метод позволяет реализовать в XSLT другие операции над множествами — пересечение, разность и симметрическую разность. Подробное описание этих операций приводится в главе 11 .

В XSLT также нет оператора, который позволил бы проверить тождественность двух узлов. Например, если каждое из множеств $Aи $Bсодержит по одному узлу, при помощи простого оператора равенства ( $A = $B) мы не сможем проверить, один и тот же это узел или два разных узла с одинаковыми текстовыми значениями.

Для того чтобы корректно выполнить такое сравнение, можно использовать функцию generate-id, которая для каждого из узлов дерева генерирует уникальный строковый идентификатор, присущий только этому узлу и никакому другому, причем для одних и тех же узлов идентификаторы всегда будут генерироваться одинаковыми. Таким образом, для проверки тождественности двух узлов, содержащихся во множествах $Aи $B, будет достаточно сравнить их уникальные идентификаторы:

generate-id($А) = generate-id($В)

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

При преобразовании в булевый тип пустое множество узлов преобразуется в false, а непустое — в true. Например, чтобы проверить, есть ли у текущего узла атрибут value, можно написать:

Value attribute exists here.

Выражение @valueвозвратит непустое множество, состоящее из узла атрибута value, если он есть в текущем элементе, или пустое множество, если такого атрибута нет. В первом случае логическим эквивалентом будет true, во втором — false, то есть текст будет выведен только в случае наличия атрибута value.

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

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

A

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

Интервал:

Закладка:

Сделать

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

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


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

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

x