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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать
Листинг 3.1. Полная версия planets.xsl

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

The Planets Table

<���Н1>

The Planets Table

</Н1>

Name Mass Radius Day

Создание образцов выбора

Как вы могли ожидать, исходя из того, что " child::MASS" можно представить в виде " MASS" и применения шаблонов, таких как " /", " /PLANETS" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.

Образцы выбора (match pattern) являются подмножеством полного языка XPath, их можно использовать в элементах >, и . В частности, в образец можно установить атрибут match у и , и атрибуты countи fromэлемента . В следующем списке приведен ряд примеров образцов выбора, много других примеров будет показано в главе 4 при подробном обсуждении использования XPath для выбора узлов и атрибутов:

• " /" выбирает корневой узел;

• " *" выбирает элементы узлов (но не всех узлов, как зачастую ошибочно полагают);

• " PLANET" выбирает элементы ;

• " PLANET/MASS" выбирает все элементы , дочерние для элемента ;

• " //PLANET" выбирает все элементы , производные от корневого узла;

• " ." выбирает текущий узел (технически это не образец выбора, а выражение XPath, как мы увидим в главе 7).

Образцы можно также использовать в атрибуте selectэлементов , , , и ; фактически атрибут selectэтих элементов может содержать полные выражения XPath, а не только образцы выбора. Атрибут selectэлемента определяет дочерний узел, значение которого нужно получить:

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

Выбор применяемого шаблона

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

Name Mass Radius Day

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

Например, до сих пор мы только получали значение каждого элемента , и при помощи :

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

The Planets Table



The Planets Table

</Н1>

Name Mass Radius Day

Здесь только извлекается «сырое» строковое значение каждого узла, которое помещается в HTML-таблицу. Однако может потребоваться дополнительная обработка каждого элемента — например, получить также значения атрибутов UNITS каждого элемента и отобразить их:

Mercury .0553

58.65

1516

.983

43.4

.

.

.

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

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

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

The Planets Table



The Planets Table

Name Mass Radius Day

ИСПОЛЬЗОВАНИЕ ИМЕНОВАННЫХ ШАБЛОНОВ

К шаблонам можно также обращаться по имени. Этот вопрос будет рассмотрен в главе 9.

Теперь к каждому элементу , и применяется новый шаблон: мы не просто получаем строковое значение узла при помощи , мы можем дополнительно обработать каждый элемент — например, прочитать значения атрибута UNITS. Сначала я получу строковые значения каждого из элементов , и . Теперь, когда у нас есть шаблон для каждого из этих узлов-элементов и каждый узел является контекстным узлом в своем шаблоне, вместо того, чтобы ссылаться на узел элемента по имени, мы можем сослаться на него как на контекстный узел при помощи выражения XPath "." (листинг 3.2):

Листинг 3.2. Версия planets.xsl с выбором

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

The Planets Table



The Planets Table

Name Mass Radius Day

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

Чтение значений атрибутов

Чтобы получить доступ к значению атрибута при помощи XPath, нужно добавить к имени атрибута префикс @, например: " @src", " @height", " @width" и т.д.

Для выбора любого атрибута можно применить выражение " @*". Чтобы сослаться на атрибут UNITSв каждом элементе , и , следует использовать выражение " @UNITS". Следовательно, получить значения и отобразить единицы (unit) каждого измерения в planets.xmlможно так (листинг 3.3).

Листинг 3.3. Чтение значений атрибутов

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

The Planets Table



The Planets Table

Name Mass Radius Day

Результаты работы показаны на рис. 3.1, Как видите, теперь мы извлекли строковое значение атрибута UNITS и отобразили его.

Рис 31Вывод значений атрибутов первый вариант Рисунок 31 не совсем точен - фото 13

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

Рисунок 3.1 не совсем точен: обратите внимание на то, что между значением и соответствующей единицей измерения в таблице нет пробела. Процессор XSLT просто поместил в результирующее дерево текст без каких-либо разделителей между текстовыми узлами. Хотя это в точности соответствует требованиям рекомендации XSLT, нам бы хотелось, чтобы элементы таблицы выглядели как «1516 miles», а не «1516miles». Как нам добавить этот дополнительный пробел?

Элемент

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

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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