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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Узел xобладает ключом с именем уи строковым значением zтогда и только тогда, когда в преобразовании существует элемент xsl:keyтакой, что одновременно выполняются все нижеперечисленные условия:

□ узел xсоответствует паттерну, указанному в его атрибуте match;

□ значение его атрибута nameравно имени y;

□ результат uвычисления выражения, указанного в значении атрибута useв контексте текущего множества, состоящего из единственного узла x, удовлетворяет одному из следующих условий:

uявляется множеством узлов и zравно одному из их строковых значений;

uне является множеством узлов и zравно его строковому значению.

Без сомнения, определение не из простых. Но как бы мы действовали, если бы физически создавали в памяти множество ключей? Ниже представлен один из возможных алгоритмов:

□ для каждого элемента xsl:keyнайти множество узлов документа, удовлетворяющих его паттерну match(множество X);

□ для каждого из найденных узлов ( xX) вычислить значение выражения атрибута use(значение u(x));

□ если u(x)является множеством узлов (назовем его U х), то для каждого u xiU хсоздать ключ (x, n, string(u xi)), где n— имя ключа (значение атрибута nameэлемента xsl:key);

□ если u(x)является объектом другого типа (назовем его u x), создать ключ (x, n, string(u x)).

Пример

Найдем множество ключей, создаваемое определением

Имена всех ключей будут одинаковы и равны "src". Множество xузлов, удовлетворяющих паттерну item, будет содержать все элементы itemобрабатываемого документа. Значением выражения, заданного в атрибуте use, будет множество всех узлов атрибутов каждого из элементов item. Таким образом, множество узлов будет иметь следующий вид:

(< item name="А" .../>, 'src', 'a')

(< item name="А" .../>, 'src', 'A')

(< item name="В" .../>, 'src', 'b')

(< item name="В" .../>, 'src', 'В')

(< item name="С" .../>, 'src', 'а')

(< item name="С" .../>, 'src', 'С')

(< item name="D" .../>, 'src', 'с')

(< item name="D" .../>, 'src', 'D')

...

(< item name="H" .../>, 'src', 'a')

(< item name="H" .../>, 'src', 'H')

В итоге функция key('src', 'a')будет возвращать объекты с именами A, Cи H, а функция key('src', 'A')— единственный объект с именем A(поскольку ни у какого другого элемента itemнет атрибута со значением "A").

Необходимо сделать следующее замечание: совершенно необязательно, чтобы процессор действительно физически создавал в памяти множества ключей. Это множество определяется чисто логически — чтобы было ясно, что же все-таки будет возвращать функция key. Процессоры могут вычислять значения ключей и искать узлы в документе и во время выполнения, не генерируя ничего заранее. Но большинство процессоров, как правило, все же создают в памяти определенные структуры для манипуляций с ключами. Это могут быть хэш-таблицы, списки, простые массивы или более сложные нелинейные структуры, упрощающие поиск, — важно другое. Важно то, что имея явное определение ключа в xsl:key, процессор может производить такую оптимизацию.

Использование нескольких ключей в одном преобразовании

В случае, когда к узлам в преобразовании нужно обращаться по значениям различных свойств, можно определить несколько ключей — каждый со своим именем. Например, если мы хотим в одном случае обращаться к объектам, принадлежащим одному источнику, а во втором — к объектам с определенными именами, мы можем определить в документе два ключа — один с именем src, второй — с именем name:

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

(< item name="А" .../>, 'src', 'а')

(< item name="А" .../>, 'name', 'А')

(< item name="В" .../>, 'src', 'b')

(< item name="В" .../>, 'name', 'В')

(< item name="C" .../>, 'src', 'a')

(< item name="C" .../>, 'name', 'С')

(< item name="D" .../>, 'src', 'с')

(< item name="D" .../>, 'name', 'D')

...

(< item name="H" .../>, 'src', 'a')

(< item name="H" .../>, 'name', 'H')

В этом случае функция key('src', 'а')возвратит объекты с именами A, Cи H, а функция key('name', 'а')— объект с именем А.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x