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

Тут можно читать онлайн Алексей Валиков - Технология XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство БХВ-Петербург, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Технология XSLT
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2002
  • Город:
    Санкт-Петербург
  • ISBN:
    нет данных
  • Рейтинг:
    4.75/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

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

Технология XSLT - описание и краткое содержание, автор Алексей Валиков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

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

Технология XSLT - читать книгу онлайн бесплатно, автор Алексей Валиков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Рис 321 Контекст шаблона элемента summer Атрибут selectэлемента - фото 38

Рис. 3.21. Контекст шаблона элемента summer

Атрибут selectэлемента xsl:apply-templates,который присутствует в этом шаблоне, вычисляет новое текущее множество: путь выборки monthвозвращает все дочерние элементы monthтекущего узла. Текущим узлом является элемент summer, то есть новое текущее множество будет состоять из трех его дочерних элементов month. Таким образом, процессор будет поочередно выполнять шаблоны в каждом из трех следующих контекстов, показанных на рис. 3.22.

Рис 322 Изменение контекста при выполнении шаблона элемента month Шаблон - фото 39

Рис. 3.22. Изменение контекста при выполнении шаблона элемента month

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

Элемент xsl:value-ofэтого шаблона создает в элементе tdтекстовый узел, значение которого равно строковому значению выражения " .", то есть строковому значению текущего узла, и в каждом случае это будет строковое значение соответствующего элемента month.

Контекст преобразования позволяет более четко определить такие понятия, как "обработка узла", "применение шаблона к узлу" и так далее. Все эти выражения означают одно: выполнение соответствующего шаблона с данным узлом в качестве текущего.

Выполнение преобразования

Несмотря на полную свободу в порядке выполнения шаблонов, правила изменения контекста и компоновки результирующего дерева, спецификация XSLT оговаривает очень четко — это делает XSLT весьма гибким языком, программы на котором при этом выполняются совершенно детерминированным образом.

Типовой процесс выполнения преобразования согласно спецификации включает следующие стадии:

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

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

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

• из всех шаблонов, определенных в данном преобразовании, выбираются шаблоны, соответствующие данному узлу (соответствие определяется паттерном, указанным в атрибуте matchэлемента xsl:template);

• из этих шаблонов выбирается наиболее подходящий;

• выбранный шаблон выполняется в контексте обрабатываемого множества как текущего множества узлов и обрабатываемого узла как текущего узла ;

□ если шаблон содержит инструкции xsl:apply-templatesили xsl:foreach, которые дополнительно выбирают узлы для обработки, процесс рекурсивно продолжается до тех пор, пока обрабатываемое множество будет содержать хотя бы один узел.

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

На сей раз, мы начнем с самых "глубоких" шаблонов — шаблонов, обрабатывающих элементы month.

Каждый из них создает результирующий фрагмент дерева следующего вида (рис. 3.23).

Рис 323 Результат обработки элемента month Шаблоны к элементам - фото 40

Рис. 3.23. Результат обработки элемента month

Шаблоны к элементам monthприменяются элементом xsl:apply-templatesпри обработке элемента summerсоответствующим шаблоном:

Результатом выполнения xsl:apply-templatesбудет объединение результирующих фрагментов деревьев, которые получатся при обработке элементов month. Таким образом, результирующий фрагмент этого шаблона будет "собран" в следующем виде (рис. 3.24):

Рис 324 Результат обработки элемента summer Пунктиром выделены - фото 41

Рис. 3.24. Результат обработки элемента summer

Пунктиром выделены результирующие фрагменты деревьев, сгенерированные при обработке элементов month; эти фрагменты объединяются и используются при создании фрагмента дерева, являющегося результатом обработки элемента summer.

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

Сгенерированный при обработке элемента summerрезультирующий фрагмент дерева включается в корневом шаблоне в элемент body(рис.3.25).

Рис 325 Результат обработки корневого узла Пунктиром выделен результирующий - фото 42

Рис. 3.25. Результат обработки корневого узла

Пунктиром выделен результирующий фрагмент дерева, который был получен при обработке элемента summer.

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

Листинг 3.31. Выходящий документ проведённого преобразования
June July August

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

Глава 4

Структура преобразования

Пространство имен XSLT

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

Уникальный идентификатор ресурса пространства имен XSLT имеет вид

http://www.w3.org/1999/XSL/Transform

Как отмечалось ранее, по адресу, указанному в URI пространства имен, совершенно необязательно будет находиться что-либо осмысленное. Однако в нашем случае по адресу http://www.w3.org/1999/XSL/Transformнаходится текстовый документ, содержащий единственную строчку:

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

Интервал:

Закладка:

Сделать


Алексей Валиков читать все книги автора по порядку

Алексей Валиков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Технология XSLT отзывы


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


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

Напишите свой комментарий
x