Вход/Регистрация
XSLT
вернуться

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

Шрифт:

<xsl:sort select="DENSITY"/>

</xsl:apply-templates>

</TABLE>

</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="DAY"/></TD>

<TD><xsl:apply-templates select="DENSITY"/></TD>

</TR>

 </xsl:template>

</xsl:stylesheet>

Вот результаты этого преобразования:

<HTML>

 <HEAD>

<TITLE>

Planets

</TITLE>

 </HEAD>

 <BODY>

<H1>

Planets sorted by density

</Н1>

<TABLE>

<TR>

<TD>Planet</TD>

<TD>Mass</TD>

<TD>Day</TD>

<TD>Density</TD>

</TR>

<TR>

<TD>Venus</TD>

<TD>.815</TD>

<TD>116.75</TD>

<TD>.943</TD>

</TR>

<TR>

<TD>Mercury</TD>

<TD>.0553</TD>

<TD>58.65</TD>

<TD>.983</TD>

</TR>

<TR>

<TD>Earth</TD>

<TD>1</TD>

<TD>1</TD>

<TD>1</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

По умолчанию

<xsl:sort>
производит сортировку в алфавитном порядке, что означает, что «10» располагается перед «2». Для осуществления сортировки в числовом порядке установите атрибут типа данных в «number»:

<xsl:sort data-type="number" select="DENSITY"/>

Убывающий порядок сортировки задается установкой у элемента

<xsl:sort>
атрибута order в «descending». Можно также сортировать по значениям атрибута, например:

<xsl:apply-templates select="PLANETS>

 <xsl:sort select="@SIZE"/>

</xsl:apply-templates>

НОВОЕ В XSLT 2.0

Одним из важных преимуществ XSLT 2.0 является поддержка схем XML, и W3C планирует внести в XSLT 2.0 возможность сортировки по любому типу данных, определенному в схеме документа, так же, как сейчас можно сортировать по строкам или числам.

Сортировка по нескольким критериям

Стоит отметить, что при сортировке можно применять несколько критериев — для этого просто примените несколько элементов

<xsl:sort>
. Первый элемент
<xsl:sort>
 отсортирует данные по основному критерию, следующий элемент — по следующему основному критерию и т.д. Вот, например, как внутри элемента
<xsl:apply-templates>
можно отсортировать планеты сначала по расстоянию, а затем по плотности (при этом планеты с одинаковым расстоянием от Солнца будут отсортированы по плотности):

<xsl:apply-templates>

 <xsl:sort select="DISTANCE"/>

 <xsl:sort select="DENSITY"/>

</xsl:apply-templates>

На этом мы заканчиваем обсуждение сортировки, и я перехожу к сопутствующей теме: нумерации.

Элемент <xsl:number>

При помощи элемента

<xsl:number>
узлу в результирующем документе присваивается очередной номер. Например, можно перенумеровать абзацы в контракте или строфы в поэме. Можно даже перенумеровать части документа несколькими уровнями, как, например, «Paragraph 3.2.5.1.» и т.п.

  • Читать дальше
  • 1
  • ...
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: