XSLT
Шрифт:
</xsl:call-template>
</xsl:if>
<xsl:if test="NAME='Earth'">
<xsl:call-template name="COLORS">
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="COLORS">
<xsl:param name="COLOR" select="'blue'"/>
<TR>
<TD>
<FONT COLOR="{$COLOR}"><xsl:value-of select="NAME"/></FONT>
</TD>
<TD>
<FONT COLOR="{$COLOR}"><xsl:apply-templates select="MASS"/></FONT>
</TD>
<TD>
<FONT COLOR="{$COLOR}"><xsl:apply-templates select="RADIUS"/></FONT>
</TD>
<TD>
<FONT COLOR="{$COLOR}"><xsl:apply-templates select="DAY"/></FONT>
</TD>
</TR>
</xsl:template>
Как задавать значения шаблона в командной строке
Кроме возможностей, предоставляемых элементами
<xsl:param>
и <xsl:with-param>
, значение параметров таблицы стилей во многих процессорах XSLT можно также задавать в командной строке. Способ зависит от конкретного процессора. Следующий пример показывает, как можно присвоить параметру
param1
значение value1
в командной строке, используя процессор XSLT от Oracle в Windows. Заметьте, что при установке значений параметра в командной строке его все равно нужно объявлять в таблице стилей при помощи <xsl:param>
: C:\>java oraclе.xml.parser.v2.oraxsl -p param1='value1' planets.xml planets.xsl output.xml
Вот как то же самое можно сделать при помощи Saxon:
C:\>saxon source.xml stylesheet.xsl param1=value1 > output.xml
при помощи Xalan:
C:\>java org.apache.xalan.xslt.Process -IN planets.xml -XSL planets.xsl -OUT output.xml -PARAM parma1 value1
и XT:
C:\XSL>java -Dcom jclark.xsl.sax parser=org.apache.xerces.parsers.SAXParser.com.jclark.xsl.sax.Driver planets.xml planets.xsl output.xml param1=value1
Элемент <xsl:key>: выбор по ключу
Элемент
<xsl:key>
позволяет создать ключ и выбрать узлы по этому ключу. Он обладает следующими атрибутами: •
name
(обязательный). Имя ключа, устанавливается в QName
; •
match
(обязательный). Устанавливается в образец выбора для выбора узлов, к которым применяется ключ; •
use
(обязательный). Устанавливается в выражение, определяющее значение ключа. При помощи ключей можно легко распознавать элементы; конкретные ключи можно выбрать при помощи образца «key». В главе 4 мы познакомились с ключами, имеющими одно значение. В следующем примере я использую ключи для выбора планет, у которых атрибут
COLOR
был установлен в «BLUE» — в данном случае это Земля: <?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="#"?>
<PLANETS>
.
.
.
<PLANET COLOR="BLUE">
<NAME>Earth</NAME>
<MASS UNITS="(Earth = 1)">1</MASS>
<DAY UNITS="days">1</DAY>
<RADIUS UNITS="miles">2107</RADIUS>
<DENSITY UNITS="(Earth = 1)">1</DENSITY>
<DISTANCE UNITS="million miles">128.4</DISTANCE><!--B перигелии-->
</PLANET>
</PLANETS>
Я создал ключ
COLOR
, выбирающий элементы <PLANET>
путем проверки их атрибута COLOR
. Ключ выглядит следующим образом: <?xml version="1.0"?>
<xsl:stylesheet version="1.1"
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.1"
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>
Поделиться:
Популярные книги
Наследие Маозари 8
8. Наследие Маозари
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Граф
8. Ученик
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Интриганка
Приключения:
исторические приключения
9.24
рейтинг книги
Встреча
7. Петя и Валерон
Фантастика:
рпг
аниме
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга IХ
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Меняя маски
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
КАМЕРГЕРСКИЙ ПЕРЕУЛОК
Фантастика:
фэнтези
6.00
рейтинг книги
Бастард Императора. Том 5
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Палач
4. Викс
Фантастика:
фэнтези
7.27
рейтинг книги
Грон. Трилогия
Грон
Фантастика:
боевая фантастика
попаданцы
8.48
рейтинг книги
Валькирия
Фантастика:
фэнтези
9.49
рейтинг книги
Прапорщик. Назад в СССР. Книга 6
6. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Падение Софии (русский роман)
Фантастика:
фэнтези
5.00