Элемент XSL:IF - улучшение внешнего вида таблиц / XML-XSLT
Элемент xsl:if можно применять не только для фильтрации строк выборки. Очевидно, что он может быть полезен и во многих других областях. В этом параграфе мы разберем пример использования элемента xsl:if для улучшения внешнего вида таблицы. Заодно мы продемонстрируем реальное использование функции position(). Мы будем использовать эту функцию для того, чтобы чередовать цвет четных и нечетных строк таблицы (ex04-8.xml, ex04-8.xsl).
Фрагмент XSL-файла, который отвечает за требуемое чередование.
<tr> <xsl:if test="position() mod 2 = 0"> <xsl:attribute name="bgcolor">#CCCCCC</xsl:attribute> </xsl:if>
С элементом xsl:if и с функцией position() мы уже знакомы. Оператор mod дает нам остаток от деления на 2. А элемент xsl:attribute позволяет нам динамически подставлять в файл результатов различные атрибуты. Это очень мощный элемент, мы разберем еще одно применение этого элемента в следующем параграфе. А сейчас приведем для полноты картины таблицу результатов.
Кличка | Вес | Цвет |
Шарик | 18 кг | рыжий с черными подпалинами |
Тузик | 10 кг | белый с черными пятнами |
Бобик | 2 кг | бело-серый |
Трезор | 25 кг | черный |