XSLT
Шрифт:
Листинг 2.4. Использование <xsl:value-of>
<?xml version="1.0">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<xsl:apply-templates/>
</HTML>
</xsl:template>
<xsl:template match="PLANETS">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="PLANET">
<xsl:value-of select="NAME"/>
</xsl:template>
</xsl:stylesheet>
Значение
planets.xml
следующий: <HTML>
Mercury
Venus
Earth
</НТМL>
АТРИБУТ DISABLE-OUTPUT-ESCAPING
Атрибут disable-output-escaping элемента <xsl:value-of> более подробно рассмотрен в главе 3.
Предположим, нам нужно осуществить нечто более сложное — например, преобразовать данные из
planets.xml
в HTML-таблицу в новом файле planets.html
(рис. 2.1), как мы видели в главе 1. Теперь это можно сделать при помощи <xsl:value-of>
. Рис. 2.1. Planets.html в Internet Explorer
Здесь важно учесть один момент. В
planets.xml
формально не задан порядок элементов <MASS>
, <RADIUS>
, <DAY>
и <DISTANCE>
, однако важно, чтобы эти элементы обрабатывались в определенном порядке в соответствии с заголовками таблицы. Поэтому я буду использовать элементы <xsl:value-of>
в том порядке, в котором они требуются в таблице HTML. Таким образом, чтобы создать HTML-таблицу, изображенную на рис. 2.1, я сначала ищу элемент
<PLANETS>
и затем заменяю его на HTML для создания самой HTML-таблицы. Элемент <PLANETS>
— дочерний элемент корневого узла, и поскольку на корневой узел можно сослаться через «/», на элемент <PLANETS>
можно сослаться непосредственно через "/PLANETS
", без необходимости предварительно применять шаблон для корневого узла. Это пример выражения XPath, большое число подобных мы также увидим в главе 4. Ниже приведен пример того, как я начал создавать HTML-таблицу путем выбора элемента
<PLANETS>
непосредственно как "/PLANETS
" —
<PLANETS>
я использовал <xsl:apply-templates>
: <?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>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
.
.
.
Каждый дочерний узел
<PLANET>
имеет дочерние узлы <NAME>
, <MASS>
, <RADIUS>
и <DAY>
, и я хочу обрабатывать их именно в таком порядке — для того чтобы они добавлялись в HTML-таблицу в соответствии с заголовками таблицы. Для задания порядка их обработки я поместил элементы <xsl:value-of>
(листинг 2.5). Листинг 2.5. planets.xsl
<?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>
The Planets Table
</TITLE>
</HEAD>
Поделиться:
Популярные книги
Дракон с подарком
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Государь
3. Рюрикова кровь
Фантастика:
мистика
альтернативная история
историческое фэнтези
6.25
рейтинг книги
Новая мама в семье драконов
2. В доме драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Прорвемся, опера!
1. Опер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Офицер-разведки
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Провинциал. Книга 3
3. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Мимик нового Мира 5
4. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Убивать чтобы жить 3
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Кодекс Охотника. Книга XVI
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученик
1. Ученик
Фантастика:
фэнтези
6.20
рейтинг книги
Сопротивляйся мне
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сам себе властелин 4
4. Сам себе властелин
Фантастика:
фэнтези
юмористическая фантастика
попаданцы
6.09
рейтинг книги
Полковник Империи
3. Безумный Макс
Фантастика:
альтернативная история
6.58