Решил вопрос так:
В ТДС
if (Core::moduleIsActive('informationsystem')) {
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
Core_Entity::factory('Informationsystem')
);
$oInfosys = Core_Entity::factory('Informationsystem');
$oInfosys->queryBuilder()
->where('informationsystem_dir_id', '=', 1);
$oInfosys = $oInfosys->findAll();
// XML-сущность, к которой будут добавляться ИС
$oInfosysXmlEntity = Core::factory('Core_Xml_Entity')->name('infosys');
// Добавляем XML-сущность контроллеру показа
$Informationsystem_Controller_Show->addEntity($oInfosysXmlEntity);
foreach ($oInfosys as $aInfosys) {
// Добавляем ИС потомком XML-сущности
$oInfosysXmlEntity->addEntity(
$aInfosys->clearEntities()
);
}
$oItems = Core_Entity::factory('informationsystem_item');
$oItems->queryBuilder()
->where('informationsystem_id', 'IN', array(1, 2, 3, 4, 5));
$aoItems = $oItems->findAll();
foreach ($aoItems as $oItems) {
$Informationsystem_Controller_Show->addEntity($oItems);
}
$Informationsystem_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName('СписокУслуг')
)
->groupsMode('none')
->show();
}
В XSL
<xsl:template match="/">
<div>
<xsl:for-each select="/informationsystem/infosys/informationsystem">
<xsl:variable name="infosys_id" select="@id"/>
<div class="item-elem">
<a href="{url}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</div>
<ul class="info_block">
<xsl:apply-templates select="/informationsystem/informationsystem_item[informationsystem_id = $infosys_id]"/>
</ul>
</xsl:for-each>
</div>
</xsl:template>
<xsl:template match="informationsystem_item">
<li>
<a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem_item">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</li>
</xsl:template>