Чередование цветов - PullRequest
       6

Чередование цветов

4 голосов
/ 01 ноября 2008

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

<itemlist>
   <item group="0">Conent...blah blah</item>
   <item group="0">Content...who cares</item>
   <item group="1">Content</item>
   <item group="2">Content</item>
   <item group="2">Content</item>
</itemlist>

И все элементы с группой = 0 одного цвета, а элементы с группой = 1 - другим, а группа = 2 либо переключается обратно на первый цвет, либо имеет свой собственный цвет.

Все, что я могу выяснить - это способы чередовать каждую строку, но я не могу "получить это", когда дело доходит до фактического использования данных узла, чтобы помочь мне принять решение.

Ответы [ 2 ]

3 голосов
/ 01 ноября 2008

Вот пример использования «выбрать» для применения другого значения класса на основе значения группы. Нечто подобное будет работать, если вы хотите относиться к каждой группе определенным образом. Если ваша логика принятия решений для группы 2 более сложна, то вы можете поместить дополнительную логику принятия решений в тестирование оператора «когда» для группы 2.

<xsl:template match="/">
    <ul>
        <xsl:apply-templates select="itemlist/item"/>
    </ul>
</xsl:template>

<xsl:template match="item">
    <li>
        <xsl:attribute name="class">
            <xsl:choose>
                <xsl:when test="@group = 0">
                    red
                </xsl:when>
                <xsl:when test="@group = 1">
                    green
                </xsl:when>
                <xsl:when test="@group = 2">
                    blue
                </xsl:when>
                <xsl:otherwise>
                    black
                </xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>
        <xsl:value-of select="."/>
    </li>
</xsl:template>

1 голос
/ 01 ноября 2008

Первые две группы просты, так как вы можете анализировать их по номеру группы.

Чтобы обработать группу 2, рассмотрите возможность использования функции , предшествующей , чтобы получить список заметок проира, и используйте count , чтобы определить их количество. Затем вы можете чередовать значения в зависимости от того, является ли счет четным или нечетным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...