Ele precisa ser envolvido em um <xsl: choose>, pois é quando. E minúsculas o "e".
<xsl:choose><xsl:whentest="4 < 5 and 1 < 2"><!-- do something --></xsl:when><xsl:otherwise><!-- do something else --></xsl:otherwise></xsl:choose>
Como instruções xsl: if, xsl: when elementos podem ter conteúdo mais elaborado entre suas tags de início e fim - por exemplo, elementos de resultado literais, elementos xsl: element ou até xsl: if e xsl: if e xsl: escolha elementos - para adicionar a a árvore de resultados. Suas expressões de teste também podem usar todos os truques e operadores que o atributo de teste do elemento xsl: if pode usar, como e, ou, e, e chamadas de função, para criar expressões booleanas mais complexas.
Talvez este seja um acéfalo para o profissional xslt, mas para mim no nível iniciante / intermediário, isso me deixou intrigado. Eu queria fazer exatamente a mesma coisa, mas tive que testar um valor de tempo de resposta de um xml em vez de um número simples. Após esta discussão, tentei o seguinte:
<xsl:whentest="responsetime/@value >= 5000 and responsetime/@value <= 8999">
o que gerou um erro. Isso funciona:
<xsl:whentest="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
Realmente não entendo por que não funciona sem number (). Será que sem number () o valor é tratado como uma string e você não pode comparar números com uma string?
De qualquer forma, espero que isso poupe a alguém muita pesquisa ...
Respostas:
Não é bem assim, o AND deve ser minúsculo.
fonte
Ele precisa ser envolvido em um <xsl: choose>, pois é quando. E minúsculas o "e".
fonte
Do XML.com :
fonte
Talvez este seja um acéfalo para o profissional xslt, mas para mim no nível iniciante / intermediário, isso me deixou intrigado. Eu queria fazer exatamente a mesma coisa, mas tive que testar um valor de tempo de resposta de um xml em vez de um número simples. Após esta discussão, tentei o seguinte:
o que gerou um erro. Isso funciona:
Realmente não entendo por que não funciona sem number (). Será que sem number () o valor é tratado como uma string e você não pode comparar números com uma string?
De qualquer forma, espero que isso poupe a alguém muita pesquisa ...
fonte