Respuestas:
Tiene que estar envuelto en un <xsl: choose> ya que es un cuándo. Y en minúscula el "y".
<xsl:choose>
<xsl:when test="4 < 5 and 1 < 2" >
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
De XML.com :
Al igual que las instrucciones xsl: if, xsl: cuando los elementos pueden tener contenidos más elaborados entre sus etiquetas de inicio y fin, por ejemplo, elementos de resultado literales, xsl: elementos de elemento, o incluso xsl: if y xsl: elija elementos para agregar a El árbol de resultados. Sus expresiones de prueba también pueden usar todos los trucos y operadores que puede usar el atributo de prueba xsl: if del elemento, como and, or, y llamadas a funciones, para construir expresiones booleanas más complejas.
Tal vez esto sea una obviedad para el xslt-professional, pero para mí a nivel principiante / intermedio, esto me dejó perplejo. Quería hacer exactamente lo mismo, pero tuve que probar un valor de respuesta de un xml en lugar de un número simple. Siguiendo este hilo, probé esto:
<xsl:when test="responsetime/@value >= 5000 and responsetime/@value <= 8999">
que generó un error Esto funciona:
<xsl:when test="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
Sin embargo, realmente no entiendo por qué no funciona sin número (). ¿Podría ser que sin número () el valor se trata como una cadena y no se pueden comparar números con una cadena?
De todos modos, espero que esto ahorre mucha búsqueda ...