Имеется XSL шаблон:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- МагазинГруппыТоваровНаГлавной -->
<xsl:template match="/">
<xsl:apply-templates select="/shop"/>
</xsl:template>
<xsl:variable name="n" select="number(3)"/>
<!-- Шаблон для магазина -->
<xsl:template match="/shop">
<div class="group_list_m">
<xsl:apply-templates select="shop_group[position() mod $n = 1]"/>
<div class="clear"></div>
</div>
</xsl:template>
<!-- Шаблон для групп товара -->
<xsl:template match="shop_group">
<div class="sub-main">
<xsl:for-each select=". | following-sibling::shop_group[position() < $n]">
<div id="group_{shop_group/@id}" class="group_list_item" data-visible="none">
.....
</div>
<!-- Если есть подгруппы -->
<div style="display: none;" id="sub-level-1" class="sub_group_{shop_group/@id} sub-level-1">
<xsl:apply-templates select="shop_group" mode="subgroup"/>
</div>
</xsl:for-each>
</div>
</xsl:template>
<!-- Шаблон для групп товара -->
<xsl:template match="shop_group" mode="subgroup">
<div>
<div class="sub_group_{shop_group/@id} sub-level-2">
<xsl:apply-templates select="shop_group" mode="subgroup-2"/>
</div>
</div>
</xsl:template>
<xsl:template match="shop_group" mode="subgroup-2">
<div class="sub_li_list-2">
<xsl:if test="position() != 1">
<xsl:attribute name="class">sub_li_list-2 bordered-top</xsl:attribute>
</xsl:if>
<!-- Если есть подгруппы -->
<xsl:if test="shop_group">
<!-- выводим подгруппы 3 уровня -->
<xsl:if test="count(ancestor::*) < 3">
<div class="sub_group_list_2">
<xsl:apply-templates select="shop_group" mode="subgroup-2"/>
</div>
</xsl:if>
</xsl:if>
</div>
</xsl:template>
</xsl:stylesheet>
Который выводит в таком виде группы и их подгруппы
<div class="group_list_m">
<div class="sub-main">
<div id="group_1" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_1 sub-level-1">
</div>
<div id="group_2" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_2 sub-level-1">
</div>
<div id="group_3" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_3 sub-level-1">
</div>
</div>
<div class="sub-main">
<div id="group_4" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_4 sub-level-1">
</div>
<div id="group_5" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_5 sub-level-1">
</div>
<div id="group_6" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_6 sub-level-1">
</div>
</div>
</div>
Суть в том, что нужно выводить подгруппы после групп :
<div class="group_list_m">
<div class="sub-main">
<div id="group_1" class="group_list_item" data-visible="none">
</div>
<div id="group_2" class="group_list_item" data-visible="none">
</div>
<div id="group_3" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_1 sub-level-1">
</div>
<div id="sub-level-1" class="sub_group_2 sub-level-1">
</div>
<div id="sub-level-1" class="sub_group_3 sub-level-1">
</div>
</div>
<div class="sub-main">
<div id="group_4" class="group_list_item" data-visible="none">
</div>
<div id="group_5" class="group_list_item" data-visible="none">
</div>
<div id="group_6" class="group_list_item" data-visible="none">
</div>
<div id="sub-level-1" class="sub_group_4 sub-level-1">
</div>
<div id="sub-level-1" class="sub_group_5 sub-level-1">
</div>
<div id="sub-level-1" class="sub_group_6 sub-level-1">
</div>
</div>
</div>
Подскажите кто знает как это сделать?