Bisakah Anda menempatkan dua kondisi dalam atribut tes xslt?


Jawaban:


211

Tidak cukup, AND harus huruf kecil.

<xsl:when test="4 &lt; 5 and 1 &lt; 2">
<!-- do something -->
</xsl:when>

33

Itu memang harus dibungkus dengan <xsl: pilih> karena ini saat. Dan huruf kecil "dan".

<xsl:choose>
   <xsl:when test="4 &lt; 5 and 1 &lt; 2" >
   <!-- do something -->
   </xsl:when>
   <xsl:otherwise>
   <!-- do something else -->
   </xsl:otherwise>
</xsl:choose>

6

Dari XML.com :

Seperti xsl: jika petunjuk, xsl: ketika elemen dapat memiliki konten yang lebih rumit antara tag awal dan akhir mereka — misalnya, elemen hasil literal, xsl: elemen elemen, atau bahkan xsl: jika dan xsl: pilih elemen — untuk ditambahkan ke pohon hasil. Ekspresi pengujian mereka juga dapat menggunakan semua trik dan operator yang xsl: jika atribut pengujian elemen dapat digunakan, seperti dan, atau, dan pemanggilan fungsi, untuk membangun ekspresi boolean yang lebih kompleks.


5

Mungkin ini adalah no-brainer untuk xslt-professional, tetapi bagi saya di tingkat pemula / menengah, ini membuat saya bingung. Saya ingin melakukan hal yang persis sama, tetapi saya harus menguji nilai responsetime dari xml bukan angka biasa. Mengikuti utas ini, saya mencoba ini:

<xsl:when test="responsetime/@value &gt;= 5000 and responsetime/@value &lt;= 8999"> 

yang menghasilkan kesalahan. Ini bekerja:

<xsl:when test="number(responsetime/@value) &gt;= 5000 and number(responsetime/@value) &lt;= 8999">

Namun, tidak terlalu mengerti mengapa itu tidak berfungsi tanpa angka (). Mungkinkah tanpa angka () nilainya diperlakukan sebagai string dan Anda tidak dapat membandingkan angka dengan string?

Bagaimanapun, harap ini menyelamatkan seseorang dari banyak mencari ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.