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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

PLANETS PLANET MASS

PLANETS PLANET

PLANETS

Применение оси descendant

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

В следующем примере (листинг 7.6) демонстрируется работа с этой осью. На этот раз я хочу добавить примечание к элементу Меркурия: Sorry, Mercury has blown up and is no longer available.(Извините, но Меркурий взорвался и больше не доступен.). Чтобы найти Меркурий, мне достаточно только проверить, имеет ли какой-либо потомок элемента строковое значение « Mercury», что я сделаю при помощи выражения XPath внутри предиката выбора.

Листинг 7.6. Применение оси descendant

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

Sorry. Mercury has blown up and is no longer available.

Вот результирующий документ, дополненный новым элементом только для Меркурия:

Mercury

.0553

58.65

1516

.983

43.4

Sorry, Mercury has blown up and is no longer available.

Venus

.815

116.75

3716

.943

66.8

.

.

.

Применение оси descendant-or-self

Ось descendant-or-selfсодержит всех потомков контекстного узла и сам контекстный узел. Заметьте, однако, что она не содержит атрибутов и узлов пространств имен.

В следующем примере (листинг 7.7) демонстрируется работа с осью. В этом случае я создал упрощенную таблицу стилей (подробнее об упрощенных таблицах стилей см. главу 2), которая обрабатывает все элементы с использованием потомков, генерируя уже знакомую нам HTML-таблицу данных о планетах.

Листинг 7.7. Применение оси descendant-or-self

The Planets Table



The Planets Table

</Н1>

Name Mass Radius Day

Вот и все. Я применил здесь упрощенную таблицу стилей, чтобы подчеркнуть, что при помощи таких осей потомков, как descendantили descendant-or-self, вы можете автоматически обрабатывать все выбираемые узлы, во многом аналогично тому, как это делают элементы или .

Применение оси following

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

В этом примере (листинг 7.8) я выбираю каждый элемент и копирую все последующие элементы в результирующий документ.

Листинг 7.8. Применение оси following

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

Далее показан результат. Обратите внимание на то, что, когда этот шаблон выбирает элемент Меркурия, он копирует все последующие элементы — то есть Венеру, затем всех потомков Венеры, далее Землю и затем всех потомков Земли. После этого он выбирает элемент Венеры и копирует все следующие элементы, то есть Землю и всех потомков Земли:

Venus

.815

116.75

3716

.943

66.8

Venus

.815

116.75

3716

.943

66.8

Earth

1

1

2107

1

128.4

Earth

1

1

2107

1

128.4

Earth

1

1

2107

1

128.4

Earth

1

1

2107

1

128.4

С другой стороны, при использовании оси following-siblingв результирующий документ будут скопированы только следующие братья, то есть только элементы , как мы увидим в следующем разделе.

Применение оси following-sibling

Ось following-siblingсодержит всех последующих братьев контекстного узла.

Например, я могу выбрать каждый элемент и скопировать в результирующий документ все узлы в оси following-siblingследующим образом (листинг 7.9).

Листинг 7.9. Применение оси following-sibling

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

При этом сначала копируются два узла-брата, следующие за Меркурием (Венера и Земля), затем копируется следующий узел-брат Венеры, Земля. У самой Земли нет следующих за ней братьев, поэтому результат выглядит так:

Venus

.815

116.75

3716

.943

66.8

Earth

1

1

2107

1

128.4

Earth

1

1

2107

1

128.4

Применение оси namespace

Ось namespaceсодержит узлы пространств имен контекстного узла. Заметьте, что эта ось пуста, если контекстным узлом не является элемент. У элемента присутствует узел пространства имен для:

• каждого атрибута элемента, чье имя начинается с «xmlns:»;

• каждого атрибута элемента-предка, чье имя начинается с «xmlns:» (конечно, если сам элемент или ближайший предок не объявит пространство имен заново);

• атрибута xmlns, если элемент или предок имеет атрибут xmlns.

В следующем примере (листинг 7.10) я хочу отобразить пространство имен элемента в результирующем документе, и в исходном документе я присвоил пространству имен значение «http://www.starpowder.com».

Листинг 7.10. planets.xml с объявлением пространства имен

Mercury

.0553

58.65

1516

.983

43.4

.

.

.

Вот таблица стилей (листинг 7.11), в которой я проверяю пространства имен, используемые в элементе .

Листинг 7.11. Применение оси namespace в planets.xml

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

А вот результирующий документ (заметьте, что вид документа может меняться в зависимости от процессора XSLT):

http://www.starpowder.com

Применение оси parent

Ось parent (родитель) содержит родителя (и только родителя) контекстного узла, если таковой имеется.

Предположим, что я хочу изменить содержимое элемента Земли на «The mass of Earth is set to 1.>> (Масса Земли принимается за 1). В следующем шаблоне (листинг 7.12) для этого проверяется, содержит ли родитель элемента элемент со строковым значением «Earth».

Листинг 7.12. Применение оси parent

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

The mass of Earth is set to 1.

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

Mercury

.0553

58.65

1516

.983

43.4

Venus

.815

116.75

3716

.943

66.8

Earth

The mass of Earth is set to 1.

1

2107

1

128.4

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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