На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ANDLL
  
> xsl - аттрибуты , как не перезаписать аттрибут, а дописать в него
    есть xsl
    ExpandedWrap disabled
      <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, то
    ExpandedWrap disabled
       STYLE="color: red; background: blue; font-weight: bold"


    через кучу choose делать не хочется - вариантов много.

    можно, конечно сделать примерно так..
    ExpandedWrap disabled
       <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>


    но тогда все проверки - в одном месте должны быть.. не очень удобно.

    Можно ли как-то по-другому сделать?
      Хм. а если местами поменять :-)
      Например вот так:
      ExpandedWrap disabled
        <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>


      Должно работать.
        Magistr, ды оно и как у меня написано - работает..
        хотелось примерно так
        ExpandedWrap disabled
          <SPAN>
          ....
          <xsl:if test="..."><xsl:call-template name="appendStyle"><xsl:with-param name="value">background: blue</..></..></..>
          ...
          </SPAN>


        просто эти проверки далеко друг от друга могут быть - неудобно, как есть.
        Но, похоже, к уже созданному дереву обращаться нельзя, поэтому так, как хотелось - не получится.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0313 ]   [ 15 queries used ]   [ Generated: 28.04.24, 12:04 GMT ]