Динамическое изменение контента элемента

Transform позволяет изменять внешний вид элементов или их групп, но иногда вам может понадобиться переключаться между списками действий в зависимости от определенных условий. Это аналогично утверждению switch или утверждению if…else на других языках.

Например, вы можете показывать разный фон для раннего утра, утра, обеда, дня, вечера и ночи.

Операторы Condition в формате циферблата позволяют включать в сцену циферблата разные элементы в зависимости от результата выражений, например:

<Condition>
    <Expressions>
        <Expression name="is_early_morning">
            <![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]]
        </Expression>
        <Expression name="is_morning">
            <![CDATA[[HOUR_0_23] < 12]]
        </Expression>
        <!-- Further expressions -->
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
    </Compare>
    <!-- Further Compare elements -->
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

Несколько примечаний об условиях:

  1. Используется первый элемент Compare, в котором expression имеет значение true, а остальные игнорируются.
  2. Поскольку используется формат XML, проще всего заключить определение выражения в элемент CDATA, как показано ниже. Это позволит избежать необходимости экранировать XML-код с помощью элементов сущностей, таких как &gt; и &amp;.
  3. Структуры Condition могут быть вложенными.