เปลี่ยนเนื้อหาองค์ประกอบแบบไดนามิก

แม้ว่า 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>
        ...
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
        <Group ... />
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
        <Group ... />
    </Compare>
    ...
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

สิ่งที่ควรทราบเกี่ยวกับเงื่อนไขมีดังนี้

  1. ระบบจะใช้องค์ประกอบ Compare รายการแรกที่มี expression เป็น true และละเว้นรายการอื่นๆ
  2. เนื่องจากรูปแบบ XML มักทำให้การรวมคําจํากัดความของนิพจน์ในองค์ประกอบ CDATA ดังที่แสดงที่นี่เป็นวิธีที่ง่ายที่สุด เนื่องจากวิธีนี้ช่วยให้ไม่ต้องใช้การหนีค่า XML โดยใช้องค์ประกอบเอนทิตี เช่น &gt; และ &amp;
  3. โครงสร้าง Condition สามารถฝังได้