Risposte:
Deve essere racchiuso in un <xsl: scegli> poiché è un quando. E minuscolo "e".
<xsl:choose>
<xsl:when test="4 < 5 and 1 < 2" >
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
Da XML.com :
Come xsl: if istruzioni, xsl: quando gli elementi possono avere contenuti più elaborati tra i loro tag di inizio e di fine, ad esempio elementi di risultato letterali, xsl: elementi di elemento o persino xsl: if e xsl: scegli elementi - da aggiungere a l'albero dei risultati. Le loro espressioni di test possono anche usare tutti i trucchi e gli operatori che xsl: se l'attributo di test dell'elemento può usare, come e, o e e le chiamate di funzione, per creare espressioni booleane più complesse.
Forse questo è un gioco da ragazzi per xslt-professional, ma per me a livello principiante / intermedio, questo mi ha lasciato perplesso. Volevo fare esattamente la stessa cosa, ma ho dovuto testare un valore responsetime da un xml anziché un numero semplice. Seguendo questa discussione, ho provato questo:
<xsl:when test="responsetime/@value >= 5000 and responsetime/@value <= 8999">
che ha generato un errore. Questo funziona:
<xsl:when test="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
Tuttavia, non capisco perché non funziona senza il numero (). Potrebbe essere che senza numero () il valore sia trattato come una stringa e non puoi confrontare i numeri con una stringa?
Ad ogni modo, spero che questo salvi un sacco di ricerche ...