XSLT
Шрифт:
В листинге 6.8 я создаю комментарии для замены элементов
<PLANET>
; текст комментария включает название планеты. Листинг 6.8. Применение <xsl:comment>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="PLANETS">
<HTML>
<HEAD>
<TITLE>
Planets
</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select="PLANET"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<xsl:comment>This was the <xsl:value-of select="NAME"/> element</xsl:comment>
</xsl:template>
</xsl:stylesheet>
Вот
<HTML>
<HEAD>
<TITLE>
Planets
</TITLE>
</HEAD>
<BODY>
<!--This was the Mercury element-->
<!--This was the Venus element-->
<!--This was the Earth element-->
</BODY>
</HTML>
Элемент <xsl:processing-instruction>: создание инструкций обработки
При помощи элемента
<xsl:processing-instruction>
можно создавать новые инструкции обработки. У этого элемента один атрибут: •
name
(обязательный). Задает имя инструкции обработки. Принимает значение шаблона значений атрибута, возвращающего NCName. В следующем примере я удалил инструкцию
<?xml-stylesheet?>
из начала planets.xml
: <?xml version="1.0"?>
<PLANETS>
<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><!--B перигелии-->
</PLANET>
<PLANET>
<NAME>Venus</NAME>
<MASS UNITS="(Earth = 1)">.815</MASS>
<DAY UNITS="days">116.75</DAY>
<RADIUS UNITS="miles">3716</RADIUS>
<DENSITY UNITS="(Earth = 1)">.943</DENSITY>
<DISTANCE UNITS="million miles">66.8</DISTANCE><!--B
перигелии-->
</PLANET>
.
.
.
Для того чтобы снова добавить эту инструкцию обработки, можно применить элемент
<xsl:processing-instruction>
(листинг 6.9). Пункты type
и href
в инструкции обработки, например <?xml-stylesheettype="text/xml" href="#"?>
, в действительности не являются атрибутами, поэтому их значения нужно устанавливать не при помощи <xsl:attribute>
, а используя простой текст. Листинг 6.9. Применение <xsl:processing-instruction>
<?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="/">
<xsl:processing-instruction name="xml-stylesheet">
<xsl:text>type="text/xml" href="#"</xsl:text>
</xsl:processing-instruction>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node">
<xsl:copy>
<xsl:apply-templates select="@*|node"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Вот результат, где инструкция обработки
<?xml-stylesheet?>
снова на месте: <?xml version="1.0" encoding="UTF-8?>
<?xml-stylesheet type="text/xml" href="#"?>
<PLANETS>
<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>
Поделиться:
Популярные книги
Наследник и новый Новосиб
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 8
8. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Идеальный мир для Социопата 2
2. Социопат
Фантастика:
боевая фантастика
рпг
6.11
рейтинг книги
Краш-тест для майора
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Идеальный мир для Социопата 6
6. Социопат
Фантастика:
боевая фантастика
рпг
6.38
рейтинг книги
Королевская Академия Магии. Неестественный Отбор
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Ненаглядная жена его светлости
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Кодекс Охотника. Книга V
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Его наследник
1. Наследники Сильных
Любовные романы:
современные любовные романы
эро литература
5.87
рейтинг книги
Кодекс Охотника. Книга XXI
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бальмануг. (Не) Любовница 2
4. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Идеальный мир для Лекаря 3
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Возмездие
4. О чем молчат могилы
Фантастика:
фэнтези
7.47