HostCMS,
HostCMS писал(а):
Только у вас вместо Informationsystem будет Shop везде.
Попробовал Ваш вариант - то же самое.
Решил следующим образом:
Из анализа кода ясно, что подгруппы раскрываются по условию (пример первого уровня)
<xsl:if test="@id = $chosen_group or count(shop_group[@id = $chosen_group]) > 0 or count(shop_group/shop_group[@id = $chosen_group]) > 0" >
Здесь мы видим (но я не сразу допетрил естественно

), что проверка проходит до второго уровня вложенности, в то время как целевая подгруппа находится ниже.
Исправил на следующий код:
<xsl:if test="@id = $chosen_group or count(shop_group[@id = $chosen_group]) > 0 or count(shop_group/shop_group[@id = $chosen_group]) > 0 or count(shop_group/shop_group/shop_group[@id = $chosen_group]) > 0" >
Добавил подобные проверки по низлежайшим уровням, чтоб доставали до целевой подгруппы.
Сейчас все подгруппы прекрасно открываются, сворачиваются-разворачиваются.
Более универсального решения пока не придумал

Хотел через родительский ID делать, но бросил.
Всех благодарю за отклики!