Чтение онлайн

на главную - закладки

Жанры

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

Шрифт:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<PLANETS>

<TOC>

<xsl:apply-templates mode="toc"/>

</TOC>

.

.

.

</PLANETS>

 </xsl:template>

 <xsl:template match="PLANET" mode="toc">

<ENTRY>

<xsl:value-of select="NAME"/>

</ENTRY>

 </xsl:template>

 .

 .

 .

Затем

я применяю общий шаблон без каких-либо режимов обработки ко всем элементам и атрибутам, копируя их в результирующий документ (листинг 6.14).

Листинг 6.14. Создание оглавления

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<PLANETS>

<TOC>

<xsl:apply-templates mode="toc"/>

</TOC>

<xsl:apply-templates select="@*|node"/>

</PLANETS>

 </xsl:template>

 <xsl:template match="PLANET" mode="toc">

<ENTRY>

<xsl:value-of select="NAME"/>

</ENTRY>

 </xsl:template>

 <xsl:template match="@*|node">

<xsl:copy>

<xsl:apply-templates select="@*|node"/>

</xsl:copy>

 </xsl:template>

</xsl:stylesheet>

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

planets.xml
с оглавлением:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xml" href="#"?>

<PLANETS>

 <TOC>

<ENTRY>Mercury</ENTRY>

<ENTRY>Venus</ENTRY>

<ENTRY>Earth</ENTRY>

 </TOC>

 <PLANET>

<NAME>Mercury</NAME>

<MASS UNITS="(Earth = 1)">.0553</MASS>

<DAY UNITS="days">58.65</DAY>

<RADIUS UNITS="miles">1516</RADIUS>

<DENSITY UNITS="(Earth = 1)">.983</DENSITY>

<DISTANCE UNITS="million miles">43.4</DISTANCE><!--В
перигелии->

 </PLANET>

 .

 .

 .

</PLANETS>

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

Глава 7 

Работа с XPath

В главе 4 было объяснено, как создавать образцы выбора, которые можно использовать в атрибуте

match
таких элементов, как
<xsl:template>
. Образцы являются подмножеством полного языка XPath, и в этой главе будет рассмотрена полная версия XPath.

Выражения XPath применимы в XSLT не только в образцах выбора, но и во многих других приложениях: в атрибуте

select
элементов
<xsl:apply-templates>
,
<xsl:value-of>
,
<xsl:for-each>
,
<xsl:param>
,
<xsl:variable>
,
<xsl:with-param>
,
<xsl:copy-of>
и
<xsl:sort>
, в шаблонах значений атрибутов, в атрибуте
test
элементов
<xsl:if>
и
<xsl:when>
, атрибуте
value
элемента
<xsl:number>
и в предикатах образцов выбора. На этот счет не может быть никаких сомнений: пока вы не знаете XPath, вы не знаете XSLT, и вся эта глава посвящена созданию выражений XPath и работе с ними.

Фактически мы работали с выражениями XPath начиная с главы 1, в которой мы впервые познакомились с атрибутом

select
в элементах
<xsl:apply-templates>
и
<xsl:value-of>
:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

Поделиться:
Популярные книги

Князь Андер Арес 3

Грехов Тимофей
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3

Бестужев. Служба Государевой Безопасности. Книга третья

Измайлов Сергей
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья

Мастер решений

Земляной Андрей Борисович
3. Специалист по выживанию
Фантастика:
боевая фантастика
космическая фантастика
6.20
рейтинг книги
Мастер решений

Неучтенный элемент. Том 1

NikL
1. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 1

Возвращение

Кораблев Родион
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Возвращение

Двойник Короля 2

Скабер Артемий
2. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Двойник Короля 2

1941, Великая Отечественная катастрофа: Итоги дискуссии

Коллектив авторов
Документальная литература:
военная документалистика
6.25
рейтинг книги
1941, Великая Отечественная катастрофа: Итоги дискуссии

Страж Кодекса. Книга IV

Романов Илья Николаевич
4. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга IV

Черная стрела

Стивенсон Роберт Льюис
Приключения:
исторические приключения
8.83
рейтинг книги
Черная стрела

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

Последний Герой. Том 1

Дамиров Рафаэль
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 1

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Сильнейший Столп Империи. Книга 2

Ермоленков Алексей
2. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 2

Князь Целитель 2

Ткачев Андрей Юрьевич
2. Князь Целитель
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Князь Целитель 2