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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Кроме этого требования, никаких других ограничений на выражения в этом атрибуте нет. В нем можно использовать переменные, содержащие множества узлов, функции, возвращающие множества узлов (например, такие, как idили key), выражения с операциями над множествами (именно таким выражением — выражением объединения было выражение bold|para), пути выборки, фильтрующие выражения, в общем, любые выражения, которые только могут возвращать множества. Например, для того, чтобы обработать содержимое произвольного внешнего XML-документа, в атрибуте selectэлемента xsl:apply-templateследует использовать функцию document.

Пример

Объявление вида

применит шаблоны ко всем элементам paraдокумента a.xml.

Режимы

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

Эта проблема решается в XSLT просто и элегантно. Атрибут modeэлемента xsl:template задает режим этого шаблона. Точно такой же атрибут есть у элемента xsl:apply-templates: в этом элементе он устанавливает режим обработки . При выполнении xsl:apply-templatesпроцессор будет применять только те шаблоны преобразования, режим которых совпадает с выбранным режимом обработки.

Пример

В качестве примера приведем преобразование, которое добавляет в XHTML-файл перечень текстовых ссылок, обнаруженных в этом документе. Грубо говоря, XHTML — это XML-версия языка HTML, а значит XSLT вполне подходит для обработки XHTML-документов.

URI пространства имен языка XHTML — "http://www.w3.org/1999/xhtml"; этому языку мы назначим префикс " xhtml" и, кроме того, сделаем это пространство пространством имен по умолчанию:

version="1.0"

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

xmlns:xhtml="http://www.w3.org/1999/xhtml"

xmlns="http://www.w3.org/1999/xhtml">

...

Начнем с шаблона, который будет выводить каждую из ссылок. В каждой ссылке мы будем выводить только ее атрибут hrefи текст, который она содержит. Для удобочитаемости мы также добавим элемент brи символ переноса строки .


Мы чуть позже познакомимся с элементами xsl:copy, xsl:copy-ofи xsl:text, пока же скажем, что

копирует в выходящий документ текущий узел, его атрибут href( @href) и дочерние текстовые узлы ( text()).

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

Следующее преобразование называется идентичным преобразованием — оно просто копирует все узлы один в один:

И, наконец, нам понадобится преобразование для элемента body— в него мы включим копию содержимого, а также ссылки, отсортированные в алфавитном порядке:

Links found on this page:

select=".//xhtml:a[@href and not(xhtml:*)]">

Если мы попытаемся выполнить преобразование, состоящее из этих шаблонов, мы обнаружим, что в тексте самого документа ссылки испортились — там тоже добавились элементы brи переносы строк. Это произошло потому, что шаблон для обработки ссылок имеет больший приоритет, чем шаблон, копирующий содержимое документа.

Для исправления этой ошибки мы выделим шаблон обработки ссылок в отдельный режим links:

...

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

режим будет пустым, значит шаблон для xhtml:авызываться не будет. Для того чтобы применить его при помощи xsl:apply-templates, мы добавим в этот элемент атрибут mode:

select=".//xhtml:a[@href and not(xhtml:*)]"

mode="links">

Разберем более подробно это определение. Данная инструкция будет применять шаблоны с режимом linksк узлам, возвращаемым выражением ".//xhtml:a[@href and not (xhtml:*)]", отсортированным в алфавитном порядке своих строковых значений. Выражение ".//xhtml:a[@href and not(xhtml:*)]"возвращает всех потомков текущего узла (путь выборки " .//"), которые принадлежат пространству имен xhtml, являются элементами с именами а, (тест имени " xhtml:a"), при этом имеют атрибут hrefи не включают в себя другие элементы (предикат " [@href and not (xhtml:*)]").

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

Интервал:

Закладка:

Сделать

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

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


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

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

x