Всегда приятнеее смотреть, да и просто ориентироваться в данных когда дизайн таблицы выполнен в "полосатом" стиле.
Следать это довольно просто. Имеем, к примеру, входной XML следующего вида:
<test>
  <value>1</value>
  <value>2</value>
  <value>3</value>
</test>
и хотим получить из этого "полосатую" таблицу.
Нам поможет XSLT преобразование следующего вида:
<xsl:template match="test">
  <table class="simple" cellpadding="5" cellspacing="0" border="0">
  <xsl:for-each select="value">
   <xsl:variable name="c" select="position() mod 2+1"/>
    <tr>
      <td class="td{$c}"><xsl:value-of select="."/></td>
    </tr>
   </xsl:for-each>
   </table>
</xsl:template>
Кстати, в таблице стилей должно быть определено два стиля: .td1 и .td2 которые и будут означать цвета чередующихся строк.
Здесь стоит обратить внимание на    <xsl:variable name="c" select="position() mod 2+1"/>,
эта инструкция задает вычисление четности-нечетности на основе позиции элемента. Берем остаток от деления, + 1 для красоты, ибо возвращаемые значения остатка будут 0 и 1. А мы хотим 1 и 2 :) <td class="td{$c}"> будет динамически подставлять класс в ячейку.
Вот и все :)
Оставить комментарий