XSLT
Шрифт:
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
.
.
.
<TR>
<TD><B>Mercury</B></TD>
<TD><B>.0553</B></TD>
<TD>1516 miles</TD>
<TD>58.65 days</TD>
</TR>
<TR>
<TD><B>Venus</B></TD>
<TD><B>.815</B></TD>
<TD>3716 miles</TD>
<TD>116.75 days</TD>
</TR>
<TR>
<TD><B>Earth</B></TD>
<TD><B>1</B></TD>
<TD>2107 miles</TD>
<TD>1 days</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Операцию |
PLANET|PLANET//NAME
"; можно использовать несколько операций | — например, "NAME|MASS|DAY
" и т.п. Примеры образцов
Изучать образцы лучше всего на примерах. Предположим, что нам требуется преобразовать
planets.xml
в planets.html
, но сохранить только первую планету, Меркурий. Это можно сделать при помощи предиката [position<2]
, так как позиция первой планеты равна 1, следующей — 2, и т.д. Заметьте, однако, что <; является управляющим символом для процессоров XSLT, начинающим разметку, поэтому вместо < необходимо использовать <
. И отметьте, что для того чтобы убрать из planets.xml
другие элементы, для них нужно предоставить пустой шаблон, что можно сделать при помощи предиката [position>=2]
(листинг 4.10). Листинг 4.10. Выбор только Меркурия
<?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>
<xsl:template match="PLANET[position < 2]">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
<xsl:template match="PLANET[position >= 2]">
</xsl:template>
<xsl:template match="MASS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="RADIUS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="DAY">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
</xsl:stylesheet>
Вот
<HTML>
<HEAD>
<TITLE>
Поделиться:
Популярные книги
Возвышение Меркурия. Книга 2
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Безымянный раб
1. Дорога домой
Фантастика:
фэнтези
9.31
рейтинг книги
Волк 4: Лихие 90-е
4. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кремлевские звезды
6. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Газлайтер. Том 4
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VIII
8. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кровь и Пламя
7. Изгой
Фантастика:
фэнтези
8.95
рейтинг книги
Объединитель
8. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Комбинация
2. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
На границе империй. Том 7. Часть 2
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
Дайте поспать!
1. Вечный Сон
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Бальмануг. Студентка
2. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Довлатов. Сонный лекарь
1. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Мастер Разума VII
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00