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>
Несколько примечаний об условиях:
- Используется первый элемент
Compare, в которомexpressionимеет значениеtrue, а остальные игнорируются. - Поскольку используется формат XML, проще всего заключить определение выражения в элемент
CDATA, как показано ниже. Это позволит избежать необходимости экранировать XML-код с помощью элементов сущностей, таких как>и&. - Структуры
Conditionмогут быть вложенными.