Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.142.128] |
|
Сообщ.
#1
,
|
|
|
есть xsl
<SPAN> <xsl:if test="..."><xsl:attribute name="STYLE">color: red</xsl:attribute></xsl:if> <xsl:if test="..."><xsl:attribute name="STYLE">background: blue</xsl:attribute></xsl:if> <xsl:if test="..."><xsl:attribute name="STYLE">font-weight: bold</xsl:attribute></xsl:if> .... </SPAN> при преобразовании, ясное дело, получется STYLE равным последнему, у которого test=true а хотелось бы, чтобы, например, если все = true, то STYLE="color: red; background: blue; font-weight: bold" через кучу choose делать не хочется - вариантов много. можно, конечно сделать примерно так.. <xsl:variable name="spanStyle"> <xsl:if test="...">color: red; </xsl:if> <xsl:if test="...">background: blue; /xsl:if> <xsl:if test="...">font-weight: bold; </xsl:if> ... </xsl:variable> <SPAN> <xsl:attribute name="STYLE"><xsl:value-of select="$spanStyle"/></xsl:attribute> ... </SPAN> но тогда все проверки - в одном месте должны быть.. не очень удобно. Можно ли как-то по-другому сделать? |
Сообщ.
#2
,
|
|
|
Хм. а если местами поменять :-)
Например вот так: <SPAN> <xsl:attribute name="STYLE"> <xsl:if test="...">color: red;</xsl:if> <xsl:if test="...">background: blue;</xsl:if> <xsl:if test="...">font-weight: bold;</xsl:if> </xsl:attribute> </SPAN> Должно работать. |
Сообщ.
#3
,
|
|
|
Magistr, ды оно и как у меня написано - работает..
хотелось примерно так <SPAN> .... <xsl:if test="..."><xsl:call-template name="appendStyle"><xsl:with-param name="value">background: blue</..></..></..> ... </SPAN> просто эти проверки далеко друг от друга могут быть - неудобно, как есть. Но, похоже, к уже созданному дереву обращаться нельзя, поэтому так, как хотелось - не получится. |