Алексей Валиков - Технология 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 - читать книгу онлайн бесплатно, автор Алексей Валиков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Семантика orи andочевидна — они соответствуют операциям логического сложения и умножения.

Результатом операции orбудет "истина", если хотя бы один из операндов является "истиной". При этом если первый операнд имеет значение true, второй операнд не вычисляется — результат и так будет "истиной".

Результатом операции andбудет "истина", если оба операнда истинны. При этом если первый из операндов — "ложь", то второй операнд не вычисляется — результат и так будет "ложью".

Функции

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

Функции можно условно разделить на стандартные функции , которые определены в XPath и XSLT и должны поддерживаться (хотя на самом деле поддерживаются далеко не всегда) всеми XSLT-процессорами, и функции расширения , которые могут создаваться разработчиками в дополнение к стандартным функциям.

Контекст вычисления выражений

Выражения всегда вычисляются в некотором контексте — окружении, которое зависит от того, какая часть документа обрабатывается XSLT-процессором в данный момент, и какие объявления присутствовали в самом преобразовании.

Контекст преобразования состоит из узла, называемого контекстным узлом, двух целых чисел — размера контекста и позиции в контексте, объявлений переменных, объявлений пространств имен и библиотеки функций.

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

Пример

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

name="имя элемента"

context-position="позиция в контексте"

context-size="размер контекста"

string-value="строковое значение">

...

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

version="1.0"

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

name="{name()}"

context-position="{position()}"

context-size="size()"

string-value="{.}">

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

A

B

C

D

E

F

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

context-position="1" context-size="1" string-value="ABCDEF">

context-position="1" context-size="2" string-value="ABC">

context-position="1" context-size="3" string-value="A"/>

context-position="2" context-size="3" string-value="B"/>

context-position="3" context-size="3" string-value="C"/>

context-position="2" context-size="2" string-value="DEF">

context-position="1" context-size="3" string-value="D"/>

context-position="2" context-size="3" string-value="E"/>

context-position="3" context-size="3" string-value="F"/>

Модель преобразования

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

Контекст преобразования

При выполнении преобразования каждая из его инструкций, каждый из элементов обрабатывается в некотором контексте . Контекст преобразования состоит из двух частей: из текущего множества узлов и из текущего узла , которые показывают, что именно обрабатывается в данный момент. XSLT-процессор поочередно обрабатывает каждый из узлов текущего множества (при этом делая этот узел текущим узлом) и объединяет результаты в одно дерево.

Контекст преобразования тесно связан с контекстом вычисления выражений:

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

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

□ размер текущего множества узлов соответствует размеру контекста вычисления выражений.

Контекст преобразования может изменяться только двумя элементами — xsl:apply-templatesи xsl:for-each. Каждый из этих элементов вычисляет множество узлов, которое становится текущим и затем обрабатывается. После этого контекст преобразования восстанавливается до того состояния, каким он был перед обработкой.

Изменения контекста могут быть продемонстрированы на следующем примере.

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

June

July

August

Этому документу соответствует следующее дерево (рис. 3.19):

Рис 319 Дерево входящего документа Листинг 330 Преобразование - фото 36

Рис. 3.19. Дерево входящего документа

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

version="1.0"

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

Забегая вперед скажем, что в изначальном контексте преобразования текущее множество состоит из единственного узла — корневого узла документа. Он становится текущим и обрабатывается соответствующим шаблоном.

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

Тело этого шаблона выполняется в том самом изначальном контексте, о котором мы только что упомянули: текущее множество состоит из корневого узла, он же является и текущим узлом. Мы можем показать контекст, выделяя текущее множество, пунктиром, а текущий узел — полужирной линией (рис. 3.20).

Рис 320Первоначальный контекст преобразования Атрибут selectэлемента - фото 37

Рис. 3.20.Первоначальный контекст преобразования

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

При выполнении элемента xsl:apply-templatesпроцессор сделает это вычисленное множество узлов текущим множеством и начнет поочередно обрабатывать его узлы, делая их при этом текущими. Иначе говоря, выполнение элемента

сведется к выполнению шаблона, обрабатывающего элемент summer. Этот шаблон выглядит следующим образом:

Выполняться он будет в следующем контексте (рис. 3.21):

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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