Стивен Холзнер - XSLT

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "XSLT"
Описание и краткое содержание "XSLT" читать бесплатно онлайн.
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
После объявления параметра при помощи <xsl:param> к его значению можно обращаться в шаблоне таким же способом, как и к значению переменной, — добавляя к имени префикс «$».
Когда вы вызываете именованный шаблон при помощи <xsl:call-template> или применяете шаблоны с использованием <xsl:apply-templates>, вы можете задать значение используемых в шаблоне параметров с помощью элемента <xsl:with-param>. Если самому параметру при объявлении было присвоено значение атрибутом select элемента <xsl:param>, это значение выступает в качестве значения параметра по умолчанию. Значение по умолчанию будет перекрыто, если вы зададите новое значение параметра при помощи элемента <xsl:with-param>. У элемента <xsl:with-param> два атрибута:
• name (обязательный). Имя переменной; устанавливается в QName;
• select (необязательный). Выражение XPath, задающее значение параметра. Если опустить этот атрибут, значение переменной будет определяться содержимым <xsl:with-param>.
Элемент может также содержать необязательное тело шаблона, создающее фрагмент результирующего дерева, но в XSLT 1.1 это уже не разрешено.
В следующем примере (листинг 9.3) я создаю именованный шаблон с именем «COLORS» (цвета), добавляющий цвет в данные планет в результирующем HTML-документе. Этот именованный шаблон использует единственный параметр, COLOR, который устанавливается в требуемый цвет. В примере я устанавливаю параметр COLOR в разные цвета для разных планет, используя <xsl:with-param> и вызывая шаблон «COLORS». Вот как это реализуется на практике.
Листинг 9.3. Применение параметров таблиц стилей<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
.
.
.
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<xsl:if test="NAME='Mercury'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'RED'"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="NAME='Venus'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'GREEN'"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="NAME='Earth'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'BLUE'"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
.
.
.
Данная таблица вызывает шаблон «COLORS» с разными значениями параметра COLOR. Я могу воспользоваться этими цветами при форматировании данных планет. Заметьте, что я объявил параметр COLOR при помощи <xsl:param> в самом начале шаблона «COLORS»:
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
.
.
.
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<xsl:if test="NAME='Mercury'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'RED'"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="NAME='Venus'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'GREEN'"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="NAME='Earth'">
<xsl:call-template name="COLORS">
<xsl:with-param name="COLOR" select="'BLUE'"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="COLORS"> <xsl:param name="COLOR"/>
<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:template match="MASS">
<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>
The Colorful Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Colorful Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<TR>
<TD><FONT COLOR="RED">Mercury</FONT></TD>
<TD><FONT COLOR="RED">.0553 (Earth = 1)</FONT></TD>
<TD><FONT COLOR="RED">1516 miles</FONT></TD>
<TD><FONT COLOR="RED">58.65 days</FONT></TD>
</TR>
<TR>
<TD><FONT COLOR="GREEN">Venus</FONT></TD>
<TD><FONT COLOR="GREEN">.815 (Earth = 1)</FONT></TD>
<TD><FONT COLOR="GREEN">3716 miles</FONT></TD>
<TD><FONT COLOR="GREEN">116.75 days</FONT></TD>
</TR>
<TR>
<TD><FONT COLOR="BLUE">Earth</FONT></TD>
<TD><FONT COLOR="BLUE">1 (Earth = 1)</FONT></TD>
<TD><FONT COLOR="BLUE">2107 miles</FONT></TD>
<TD><FONT COLOR="BLUE">1 days</FONT></TD>
</TR>
</TABLE>
</BODY>
</HTML>
Этот результирующий документ показан на рис. 9.2 (пусть даже в черно-белом исполнении).
Рис. 9.2. Вызов именованного шаблона с параметрами
В следующем примере я использую параметры для локализации используемого в шаблоне языка. Я создаю новый шаблон localize с параметром language. Если language установлен в «en», означая английский, результирующий документ будет озаглавлен «Planets»; если language установлен в «de», немецкий, результирующий документ будет озаглавлен «Planeten», а если в «fr», французский, результирующий документ будет озаглавлен «Planetes».
Здесь я вызываю шаблон localize, установив language в «fr»:
<?xml version="1.0"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
<xsl:call-template name="localize">
<xsl:with-param name="language" select="'fr'"/>
</xsl:call-template>
</TITLE>
</HEAD>
<BODY>
<H1>
<xsl:call-template name="localize">
<xsl:with-param name="language" select="'fr'"/>
</xsl:call-template>
.
.
.
А вот как выглядит параметризованный шаблон «COLORS». Заметьте, что я объявляю параметр COLOR в шаблоне при помощи элемента <xsl:param> (и заметьте, что в HTML 4.01 символьный элемент для «е» в «Planetes», который я и использую — это è):
<?xml version="1.0"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
<xsl:call-template name="localize">
<xsl:with-param name="language" select="'fr'"/>
</xsl:call-template>
</TITLE>
</HEAD>
<BODY>
<H1>
<xsl:call-template name="localize">
<xsl:with-param name="language" select="'fr'"/>
</xsl:call-template>
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "XSLT"
Книги похожие на "XSLT" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Стивен Холзнер - XSLT"
Отзывы читателей о книге "XSLT", комментарии и мнения людей о произведении.