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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

C:\planets>java org.apache.xalan.xslt.Process -IN planets.xml -XSL errors.xsl -OUT new.xml

file:///C:/XSL/w.xsl: Line 18: Column 38: Each planet must have a name!

XSLT Error (javax.xml.transform.TransformerException): Stylesheet directed termination

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

Элементы , и

Элемент похож на оператор Java switch, который позволяет сравнивать значение условия с несколькими возможными вариантами.

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

Вот как это работает: в элемент заключаются элементы , каждый с условием true/false. Применяется тело шаблона в первом элементе , чье условие имеет значение true, все остальные не применяются. Последним элементом внутри элемента может быть элемент тело шаблона внутри этого элемента применяется, если ни одно из предыдущих условий не имело значения true:

В предыдущем разделе для осуществления этого преобразования нам потребовалось три элемента :

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

The Planets

The first three planets are:

Each planet must have a name!

,

.

Теперь то же самое можно сделать при помощи единственного элемента :

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

The Planets

The first three planets are:

Each planet must have a name!

.

.

.

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

test(обязательный). Принимает логическое ( Boolean) значение ( true/false) проверяемого условия.

Элемент содержит тело шаблона.

Атрибут проверки принимает значение true/false выражения, определяющего, будет ли применяться заключенное в элементе тело шаблона или нет. Например, вот как я добавил элементы с соответствующими знаками пунктуации для всех планет, кроме последней:

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

The Planets

The first three planets are:

Each planet must have a name!

,

and

.

.

.

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

У элемента нет атрибутов, и он содержит тело шаблона. Вот как это выглядит в листинге 5.4.

Листинг 5.4. Применение

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

The Planets

The first three planets are:

Each planet must have a name!

,

and

.

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

The Planets

The first three planets are: Mercury, Venus, and Earth.

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

The Planets

Mercury

Hottest

Venus

Hot

Earth

OK

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

Листинг 5.5. Второй пример

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

The Planets

Each planet must have a name!

Hottest

Hot

OK

Вот и все.

Предположим теперь, что нам нужно добавить в каждый элемент атрибут COLOR:

Mercury

.0553

58.65

1516

.983

43.4

Venus

.815

116.75

3716

.943

66.8

Earth

1

1

2107

1

128.4

Отобразить названия различных планет при помощи элемента , отформатированные по-разному при помощи тегов HTML <���В>, и в зависимости от значения атрибута COLOR, можно следующим образом (листинг 5.6).

Листинг 5.6. Форматирование при помощи

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

Planets

<���В>



Вот результирующий документ:

Planets

Mercury

Venus

Earth

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

Элемент

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

ПРОТИВ

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

У элемента один атрибут:

select(обязательный). Принимает значение выражения XPath, возвращающее набор узлов, который нужно обработать в цикле.

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

В теле шаблона функция positionвозвращает позицию текущего узла в наборе узлов, a lastвозвращает число узлов в наборе. Если не используется, узлы обрабатываются в порядке документа (в порядке, в котором они перечислены в документе); если же используется элемент , набор узлов будет сначала отсортирован в порядке, заданном этим элементом.

Предположим, нам нужно отформатировать все названия планет, заключив их в элементы HTML <���Р>, — это можно сделать следующим образом:

<���Р>

Но что делать, если у некоторых планет по два названия, как, например:

Mercury

Closest planet to the sun

.0553

58.65

1516

.983

43.4

Это проблема, поскольку атрибут selectэлемента сам по себе выберет только первый элемент . Чтобы пройти в цикле все возможные варианты, вместо него следует применить элемент (листинг 5.7).

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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