สิ่งนี้เหมาะสำหรับเมื่อ 4 <5 และ 1 <2 หรือไม่
<xsl:when test="4 < 5 AND 1 < 2" >
<!-- do something -->
</xsl:when>
สิ่งนี้เหมาะสำหรับเมื่อ 4 <5 และ 1 <2 หรือไม่
<xsl:when test="4 < 5 AND 1 < 2" >
<!-- do something -->
</xsl:when>
คำตอบ:
ไม่มาก AND ต้องเป็นตัวพิมพ์เล็ก
<xsl:when test="4 < 5 and 1 < 2">
<!-- do something -->
</xsl:when>
จะต้องห่อด้วย <xsl: choose> เนื่องจากเป็นเวลา และตัวพิมพ์เล็ก "และ"
<xsl:choose>
<xsl:when test="4 < 5 and 1 < 2" >
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
จากXML.com :
เช่นเดียวกับ xsl: if คำแนะนำ xsl: เมื่อองค์ประกอบสามารถมีเนื้อหาที่ซับซ้อนมากขึ้นระหว่างแท็กเริ่มต้นและแท็กสิ้นสุดตัวอย่างเช่นองค์ประกอบผลลัพธ์ตามตัวอักษรองค์ประกอบ xsl: องค์ประกอบหรือแม้แต่ xsl: if และ xsl: เลือกองค์ประกอบเพื่อเพิ่มลงใน ต้นไม้ผลลัพธ์ นิพจน์ทดสอบของพวกเขายังสามารถใช้กลเม็ดและตัวดำเนินการทั้งหมดที่แอตทริบิวต์การทดสอบของ xsl: if ขององค์ประกอบสามารถใช้ได้เช่นและหรือและการเรียกฟังก์ชันเพื่อสร้างนิพจน์บูลีนที่ซับซ้อนมากขึ้น
บางทีนี่อาจไม่ใช่เกมง่ายๆสำหรับ xslt-professional แต่สำหรับฉันในระดับเริ่มต้น / ระดับกลางสิ่งนี้ทำให้ฉันงงงวย ฉันต้องการทำสิ่งเดียวกันทุกประการ แต่ฉันต้องทดสอบค่า responsetime จาก xml แทนที่จะเป็นตัวเลขธรรมดา ตามหัวข้อนี้ฉันได้ลองสิ่งนี้:
<xsl:when test="responsetime/@value >= 5000 and responsetime/@value <= 8999">
ซึ่งสร้างข้อผิดพลาด ใช้งานได้:
<xsl:when test="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
ไม่เข้าใจจริงๆว่าทำไมมันใช้ไม่ได้ถ้าไม่มี number () เป็นไปได้ไหมว่าหากไม่มีตัวเลข () ค่าจะถือว่าเป็นสตริงและคุณไม่สามารถเปรียบเทียบตัวเลขกับสตริงได้?
อย่างไรก็ตามหวังว่านี่จะช่วยใครบางคนในการค้นหาได้มาก ...