2008-11-25 48 views

Respuesta

187

No exactamente, la Y tiene que ser minúscula.

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

De XML.com:

Como XSL: si las instrucciones, XSL: cuando elementos pueden tener más elaborados contenidos entre su inicio y -tags finales por ejemplo, resultado literal elementos , xsl: element elements, o even xsl: if y xsl: choose elements-to agregar al árbol de resultados. Sus prueba expresiones también pueden utilizar todos los trucos y operadores que el XSL: si el atributo de prueba elemento puede utilizar, tales como y, o, y llamadas a funciones, a construcción más compleja booleana expresiones.

31

Se tiene que ser envuelto en un XSL <: elegir > ya que es un cuándo. Y minúsculas el "y".

<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> 
4

Tal vez esto es una obviedad para el XSLT-profesional, pero para mí en nivel principiante/intermedio, esto me tiene desconcertado. Quería hacer exactamente lo mismo, pero tenía que probar un valor de tiempo respuesta de un xml en lugar de un número simple. Siguiendo este hilo, probé esto:

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

que generó un error. Esto funciona:

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

No entiendo por qué no funciona sin number(). ¿Podría ser que sin number() el valor se trata como una cadena y no se pueden comparar números con una cadena?

De todos modos, espero que esto ahorra a alguien un montón de búsqueda ...

Cuestiones relacionadas