<TD><xsl:value-of select='NAME'/></TD>
<TD><xsl:value-of select='MASS'/></TD>
<TD><xsl:value-of select='RADIUS'/></TD>
<TD><xsl:value-of select='DAY'/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Результат применения таблицы с использованием процессора Saxon (в котором особенно хорошо реализовано выравнивание) с требуемым выравниванием:
<HTML>
<HEAD>
<meta http-equiv='Content-Type' content='text/html' charset='utf-8'>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER='2'>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
<TR>
<TD>Mercury</TD>
<TD>.0553</TD>
<TD>1516</TD>
<TD>58.65</TD>
</TR>
<TR>
<TD>Venus</TD>
<TD>.815</TD>
<TD>3716</TD>
<TD>116.75</TD>
</TR>
<TR>
<TD>Earth</TD>
<TD>1</TD>
<TD>2107</TD>
<TD>1</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Как видите, в XSLT обработке символов-разделителей приходится уделять достаточное внимание, но процедура упрощается, если вы знаете, что происходит.
ВЫРАВНИВАНИЕ ДОКУМЕНТОВ В ЭТОЙ КНИГЕ
Способ выравнивания документов зависит от конкретного процессора XSLT. В этой книге документы выровнены для удобочитаемости, даже если в действительности документы не были выровнены процессором XSLT.
Правила по умолчанию в шаблоне
Взгляните на следующую таблицу стилей XSLT — в ней заданы правила для выбора корневого узла, узлов <PLANETS>
и узлов <PLANET>
:
<?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'>
<P>
<xsl:value-of select='NAME'/>
</P>
</xsl:template>
</xsl:stylesheet>
Обратите внимание на правило для элемента <PLANETS>
: в нем просто используется элемент <xsl:apply-templates>
для применения шаблонов ко всем дочерним узлам. Однако при обработке шаблона существует правило по умолчанию: если для элемента не задано правило, автоматически вызывается <apply-templates/>
. Таким образом, следующая таблица стилей, в которой опущено правило для <PLANETS>
, делает в точности то же, что и предыдущая:
<?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='PLANET'>
<P>
<xsl:value-of select='NAME'/>
</P>