XSL: вывод элементов в обратном порядке
6 ноября 2014;
Рубрики:
XML/XSLT;
Для обработки списка элементов в обратном порядке необходимо выполнить сортировку по значению 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>
сортированы в обратном порядке.