XSL: вывод элементов в обратном порядке

Для обработки списка элементов в обратном порядке необходимо выполнить сортировку по значению position(). Предположим, что есть следующая выборка:

<items>
	<item>ARM219-08-G Elegant</item>
	<item>0780 AKIRA</item>
	<item>ARM247-06-R Elegant</item>
	<item>A2008LM-6BZ ALLEGRO</item>
	<item>ARM257-08-G Люстра Elegant 38</item>
	<item>3802 MISTRAL</item>
	<item>ARM620-01-W Elegant</item>
	<item>3684 Lua</item>
</items>




Для обработки используем следующий XSL шаблон:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" indent="yes" />
	<xsl:template match="/">
        <ul>
        <xsl:apply-templates select="items/item">
            <xsl:sort select="position()" data-type="number" order="descending"/>
        </xsl:apply-templates>
        </ul>
	</xsl:template>

    <xsl:template match="items/item">
        <li><xsl:value-of select="." /></li>
    </xsl:template>
</xsl:stylesheet>

Результатом будет HTML список, где ноды из <items> сортированы в обратном порядке.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *