XSLT
Шрифт:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http.//www.w3.org/1999/XSL/Transform">
<xsl:key name="COLOR" match="PLANET" use="@COLOR"/>
.
.
.
Теперь при помощи образца "
key
" можно выбрать элементы <PLANET>
с атрибутом COLOR
со значением "BLUE
": <?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="COLOR" match="PLANET" use="@COLOR"/>
<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 select="key('COLOR', 'BLUE')"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
.
.
.
А
<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>
<TR>
<TD>Earth</TD>
<TD>1 (Earth = 1)</TD>
<TD>2107 miles</TD>
<TD>1 days</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Применение
При помощи операции Or (или), |, можно осуществлять выбор по нескольким возможным образцам, что очень удобно с ростом сложности документов. В следующем примере я хочу отобразить элементы
<NAME>
и <MASS>
полужирным, что задается тегом HTML <В>
. Для выбора либо элементов <NAME>
, либо <MASS>
в новом правиле я использую операцию Or: <?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
.
.
.
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:apply-templates 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="NAME | MASS">
<B>
<xsl:apply-templates/>
</B>
</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>
Вот результаты; заметьте, что значения имени и массы заключены в элементы
<В>
:
Поделиться:
Популярные книги
Шесть тайных свиданий мисс Недотроги
Любовные романы:
любовно-фантастические романы
эро литература
7.75
рейтинг книги
Я еще не барон
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Седьмая жена короля
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Не верь мне
7. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Газлайтер. Том 12
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Жандарм
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Архонт
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Волк 7: Лихие 90-е
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Целитель
1. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Менталист. Конфронтация
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Восход. Солнцев. Книга IX
9. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сломанная кукла
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Свет во мраке
8. Изгой
Фантастика:
фэнтези
7.30