Стивен Холзнер - XSLT

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

Стивен Холзнер - XSLT краткое содержание

XSLT - описание и краткое содержание, автор Стивен Холзнер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

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

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

Интервал:

Закладка:

Сделать

disable-output-escaping. Устанавливается в yesдля того, чтобы такие символы, как < и >, выводились буквально, а не как <и >. По умолчанию установлен в no.

Этот элемент может содержать только текстовый узел.

Текстовые узлы создаются при помощи элемента , позволяющего по ходу дела замещать элементы целиком на текст. Одна из целей применения — сохранить символы-разделители, как в следующем примере (листинг 3.4), в котором элемент используется для вставки пробелов.

Листинг 3.4. Вставка пробелов в таблицу стилей

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

The Planets Table



The Planets Table

Name Mass Radius Day

Новый результат виден на рис. 3.2, на котором между числовыми значениями и их единицами измерения вставлены пробелы.

Рис 32Вывод значений атрибутов второй вариант Как видите элемент весьма - фото 14

Рис. 3.2.Вывод значений атрибутов, второй вариант

Как видите, элемент весьма удобен. Тем не менее вам следует знать вот что: по умолчанию элементы заменяют символы, которые могут входить в разметку, на эскейп-последовательности. Например, Here is а greater-than sign: >будет выведено как «Here is a greater-than sign: >,», а не как «Herе is a greater-than sign: >». А если попытаться использовать < внутри элемента , процессор XSLT посчитает, что вы пытаетесь открыть элемент внутри элемента , что неверно. Как же вывести значащие символы, такие как < и >, если есть необходимость? Это можно сделать путем отключения вывода ESC-последовательностей (disabling output escaping).

УСОВЕРШЕНСТВОВАНИЯ В XSLT 2.0

Один из вопросов, которые призван решить XSLT 2.0, это упрощение импорта подобного текста без разбора из других файлов.

Отключение вывода эскейп-последовательностей

При помощи можно включать в выходной документ непосредственно символы < и &, а не последовательности <и &. Для этого следует установить атрибут disable-output-escapingэлемента в yes («да», по умолчанию он установлен в no, «нет»). В приведенном ниже примере я при помощи непосредственно пишу текст " " в выходной документ:

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

Planets

Результат следующий:

Planets

Разумеется, не обязательно выводить при помощи : этот элемент можно было поместить непосредственно в элемент буквального результата. Но что делать в тех случаях, когда процессор XSLT не сможет распознать нужный нам в выходном документе элемент как фактический элемент? Например, в преобразованных документах XHTML вам потребуется , но процессор XSLT сочтет, что это не хорошо сформированный XML. Как поместить этот элемент в выходные данные?

Можно попробовать поместить этот элемент в раздел , как мы увидим в главе 6, и попытаться трактовать его как простые символьные данные, но процессоры XSLT все равно заменят < на <, а > на >.

Правильный способ добавить в вывод элемент — использовать атрибут doctype-publicэлемента , как мы увидим в главе 6, но в качестве демонстрации для этих целей здесь я отключу вывод ESC-последовательностей в элементе (хотя этот способ не рекомендован для создания элементов ). Вот как это выглядит:

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

The Planets Table



The Planets Table

Name Mass Radius Day

А вот результат:

The Planets Table



The Planets Table

.

.

.

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

Написание значений атрибутов

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

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

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

MASS=".0553 (Earth = 1)" NAME="Mercury"/>

MASS=".815 (Earth = 1)" NAME="Venus"/>

MASS="1 (Earth = 1)" NAME="Earth"/>

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

"

MASS=""

DAY=""

/>

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

Шаблоны значений атрибутов

Шаблон имени значения атрибута не имеет ничего общего с теми шаблонами, с которыми мы до сих пор работали, — то есть с шаблонами для создания правил таблицы стилей. Напротив, применение шаблона значения атрибута (attribute value template) означает лишь, что значение атрибута может быть установлено во время выполнения.

В этом случае атрибут можно установить в значение выражения XPath (более подробно эта тема изучается в главе 4), если заключить выражение в фигурные скобки. Например, чтобы установить атрибут NAMEв строковое значение элемента , дочернего элемента контекстного узла, это значение можно присвоить следующим образом: NAME={DESCRIPTION}.

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

Листинг 3.5. Работа с шаблонами значений атрибутов

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

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

Предположим теперь, что нам также нужно включить все единицы измерения. Каждый элемент , и содержит атрибут UNITS, задающий единицы измерения, и можно извлечь эти значения. Контекстным узлом является элемент , поскольку шаблон установлен для выбора этого элемента, поэтому на дочерние элементы , и можно ссылаться как " MASS", " NAME" и " RADIUS". Для обращения к атрибуту UNITSэтих элементов можно использовать синтаксис " MASS/@UNITS", " NAME/@UNITS", и " RADIUS/@UNITS":

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

MASS="{MASS} {MASS/@UNITS}"

RADIUS="{RADIUS} {RADIUS/@UNITS}"

DAY="{DAY} {DAY/@UNITS}"/>

И вот результат, включающий единицы измерения:

MASS=".0553 (Earth = 1)" NAME="Mercury"/>

MASS=".815 (Earth = 1)" NAME="Venus"/>

MASS="1 (Earth = 1)" NAME="Earth"/>

Заметьте, что в шаблонах значений атрибутов нельзя использовать вложенные фигурные скобки, и в выражении, использующем фигурные скобки, — таком как function printHello {cout << 'Hello';}— фигурные скобки необходимо удваивать, для того чтобы процессор XSLT их игнорировал: function printHello {{cout<<'Hello';}}.

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

Интервал:

Закладка:

Сделать


Стивен Холзнер читать все книги автора по порядку

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




XSLT отзывы


Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


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

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