чтобы убрать жесткую привязку в входящим узлам и последовательности
insomnia 12.05.2007 16:20
Marat все грамотно написал, так что то же самое, другими словами )
хочется отделить рамку от данных, находящихся с ней,
чтобы менять рамку для одних и тех же данных
чтобы менять данные для одной о той же рамки
нужно сделать так, чтобы в рамке находился только один объект,
то, что вы и делаете, передавая в функцию один параметр
^frame[^forum[]]
<frame><forum /></frame>
<frame><thread /></frame>
<frame><message /></frame>
если известно, что находится внутри:
<xsl:template match="frame">
<xsl:apply-templates select="forum" />
<xsl:apply-templates select="thread" />
<xsl:apply-templates select="message" />
...
</xsl:template>
если не известно, что находится внутри:
<xsl:template match="frame">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="frame/forum" />
<xsl:template match="frame/thread" />
<xsl:template match="frame/message" />
во втором случае шаблон выбирается автоматически
это примерно как Shape.draw()
рамка и данные в ней параметризуются именно через xml, а не xslt
при разборе фрагмента
<frame type="red"><message /></frame>
шаблоном
<xsl:template match="frame" />
<xsl:template match="frame[@type = "red"] priority="1" />
<xsl:template match="frame[@type = "blue"] priority="1" />
<!-- общий вид сообщения на форуме -->
<xsl:template match="message" />
<!-- вид сообщения, если он внутри рамки -->
<xsl:template match="frame/message" priotity="1" />
будет сначала вызван шаблон для построения красной рамки,
а внутри него будет вызван шаблон для построения сообщения в том месте рамки, где оно должно появиться
обратите внимание, как именно расположены элементы сообщения (имя пользователя, время, заголовок, текст) определяется в шаблоне message, в котором можно вывести их в любом порядке
структура узлов действительно будет жесткая:
сообщение в рамке - это <frame><message /></frame>
уже нельзя в xml написать <message />, а в xsl его обрамить
с другой стороны, рамка - это тоже важный блок страницы, и его отображение может меняться в разных языковых версиях сайта
- off: XSL > Есть вопрос, Rafael 08.05.2007 12:43
- Ответ, Антон 09.05.2007 01:52
- У меня в системе так, Marat Suponitsky 08.05.2007 16:00 / 08.05.2007 16:04
- Ответ, Rafael 08.05.2007 16:27 / 08.05.2007 16:29
- чтобы убрать жесткую привязку в входящим узлам и последовательности, insomnia 12.05.2007 16:20
- Ответ, Rafael 13.05.2007 13:07
- не проверял, но..., Азат Разетдинов [M] 08.05.2007 23:14
- Ответ, 08.05.2007 15:18
- Типа этого, ash [M] 08.05.2007 14:33