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

Интервал:

Закладка:

Сделать

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

Базовые типы узлов и направление их просмотра можно свести в одну таблицу (табл. 6.1).

Таблица 6.1. Базовые типы узлов и направления просмотра осей навигации

Ось навигации Базовый тип узла Направление просмотра
self Узел элемента Нет
child Узел элемента Прямое
parent Узел элемента Нет
descendant Узел элемента Прямое
descendant-or-self Узел элемента Прямое
ancestor Узел элемента Обратное
ancestor-or-self Узел элемента Обратное
following Узел элемента Прямое
following-sibling Узел элемента Прямое
preceding Узел элемента Обратное
preceding-sibling Узел элемента Обратное
attribute Узел атрибута Прямое
namespace Узел пространства имен Прямое

Базовый тип влияет на то, как в данном шаге выборки будет выполняться тест узла, а направление просмотра на позицию, которую будет занимать тот или иной узел в данном направлении.

Легче всего понять, какие узлы и в каком порядке содержат те или иные оси навигации, представив это графически. Рис. 6.10 иллюстрирует выбор узлов осями навигации. Здесь показано дерево документа, контекстный узел, выделенный жирной линией, и множество узлов, содержащееся в данной оси, ограниченное пунктиром. Узлы выбранного множества пронумерованы в порядке просмотра оси.

Рис 610 Расположение и порядок просмотра осей навигации в документе Приведем - фото 56

Рис. 6.10. Расположение и порядок просмотра осей навигации в документе

Приведем продукцию AxisName, которая описывает синтаксис осей навигации.

[XP6] AxisName ::= 'ancestor'

| 'ancestor-or-self'

| 'attribute'

| 'child'

| 'descendant'

| 'descendant-or-self'

| 'following'

| 'following-sibling'

| 'namespace'

| 'parent'

| 'preceding'

| 'preceding-sibling'

| 'self'

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

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

Тесты узлов

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

Продукция NodeTest, соответствующая тесту узла, определяется следующим образом:

[XP7] NodeTest ::= NameTest

| NodeType '(' ')'

| 'processing-instruction' '(' Literal ')'

Раскрыв продукции NameTestи NodeType, EBNF-синтаксис теста узла можно переписать в упрощенном виде:

NodeTest ::= '*'

| NCName:*

| QName

| 'comment()'

| 'text()'

| 'processing-instruction'

| 'processing-instruction' '(' Literal ')'

| 'node()'

Рассмотрим подробно каждый случай.

□ Тест узла '*'выполняется для любого узла, тип которого является базовым типом оси навигации данного шага выборки. Иными словами, шаг выборки attribute::*или @*выберет все атрибуты контекстного узла, а namespace::*— все узлы пространств имен. Для всех остальных осей тест *будет выбирать узлы элементов, принадлежащих данной оси.

□ Тест узла вида 'NCName:*'выполняется для узлов определенного пространства имен. Этот тест имеет вид префикс :*, где префикс соответствует проверяемому пространству (он должен быть определен в контексте вычисляемого шага выборки). Этот тест выполняется для всех узлов пространства имен, которое соответствует префиксу вне зависимости от локальной части имени.

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

□ Тест 'comment()'выполняется для любого узла комментария.

□ Тест 'text()'выполняется для любого текстового узла.

□ Тест узла 'processing-instruction()'выполняется для любого узла инструкции по обработке.

□ Тест 'processing-instruction (' Literal ')', или, в упрощенном виде processing-instruction( строка )выполняется для инструкций по обработке, имеющих имя, равное строковому параметру этого теста узла.

□ Тест узла 'node()'выполняется для любого узла. Шаг выборки вида ось ::node()выберет все узлы, принадлежащие данной оси.

Примеры:

child::node()— выберет все дочерние узлы контекстного узла;

child::*— выберет дочерние элементы контекстного узла;

attribute::*— выберет атрибуты контекстного узла;

xsl:*— выберет все дочерние элементы контекстного узла, принадлежащие пространству имен с префиксом xsl;

xsl:template — выберет все дочерние элементы templateконтекстного узла, принадлежащие пространству имен с префиксом xsl;

comment()— выберет все дочерние узлы комментариев;

self::comment()— выберет контекстный узел, если он является комментарием, или пустое множество в противном случае;

descendant::processing-instruction()— выберет все узлы инструкций по обработке, которые являются потомками контекстного узла;

following::processing-instruction('арр')— выберет все узлы инструкций по обработке с целевым приложением " app", которые следуют за контекстным узлом в порядке просмотра документа.

Тест узла показывает, какого типа узлы мы ищем. Комментарии? Текстовые узлы? Узлы с определенными именами или принадлежащие определенному пространству имен? Или подойдут любые узлы?

Итак, ось навигации позволяет указывать направления шага по дереву документа, тест узла — тип или имя выбираемого узла. Третья часть шага выборки (один или несколько предикатов) позволяет дополнять эти критерии логическими условиями, которые должны выполняться для выбираемых на данном шаге узлов.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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