XSLT - импортирование файлов по переменной

Drakon

Новичок
XSLT - импортирование файлов по переменной

Появилась такая проблема: с целью уменьшения объёма обрабатываемых данных (XSL шаблоны) я хочу подключать с помощью <xsl:import> не все файлы, а только один - тот, который например хранится в //module_info/@name.

Попробовал так:
<xsl:import><xsl:attribute name="href"><xsl:value-of select="//module_info/@name"/></xsl:attribute>.xsl</xsl:import>

- пишет, что xsl:attribute можно использовать только в xsl:template.
А если засунуть это в xsl:template, то пишет, что xsl:import можно использовать только непосредственно в xsl:stylesheet.

Есть какое-нить решение у этой проблемы?
 

denver

?>Скриптер
Drakon
Так делать нельзя идеологически. Но. Вместо того чтобы подключать единый файл в который инклудятся сотни других, лучше делать наоборот. Т.е. подключать сотни (точнее тот который нужен для данной страницы) в каждый из которых инклудится один. Надеюсь понятно? Подключай не главный (с нужными+ненужными), а нужный (с главным).
 

Scud

Новичок
Гы, а еще можно нужный xsl:import подключать через DOM, с помощью insertNode.
 

Alexandre

PHPПенсионер
Scud надо делать правильно, а как правильно - сказал denver

Надо исходить из правила, что
XSLT решения не должны быть привязаны к платформе.
В данном случае - платформой выступает PHP, который
нужный xsl:import подключать через DOM
Scud и Drakon если взялся использоваить XSLT, то надо отходить от стереотипов смарти

лично я, все XSLT преобразования, прежде чем перенести на скрипт, прогоняю через xsltproc и xsltdebug.
Этим ты экономишь время как на отладку, так и на эффективность самого XSLT преобразования
 

Scud

Новичок
Если XSLT преобразование является частью framework, и framework написан на PHP, то не вижу причин чтоб от этого абстрагироваться.
 

Drakon

Новичок
Спасибо.
Мне нравятся оба варианта.
Абстрагирование... Да, я люблю это. Поэтому мне больше понравился первый вариант.
А второй ради интереса попробую тоже.
 
Сверху