Відповіді:
Його потрібно загорнути в <xsl: select>, оскільки це коли. І малі знаки "і".
<xsl:choose>
<xsl:when test="4 < 5 and 1 < 2" >
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
З XML.com :
Як і xsl: якщо інструкції, xsl: коли елементи можуть мати більш детальний вміст між їх початковим і кінцевим тегами - наприклад, буквальні елементи результату, xsl: елементи елементів, або навіть xsl: if і xsl: вибирати елементи - додати до дерево результатів. Їх тестові вирази можуть також використовувати всі хитрощі та оператори, якими може користуватися тест-атрибут xsl: якщо тестовий атрибут елемента, такий як і, або, та виклики функцій, для створення більш складних булевих виразів.
Можливо, це не-мозок для xslt-professional, але для мене на початковому та середньому рівні це мене спантеличило. Я хотів зробити саме те ж саме, але мені довелося перевірити значення реанімації з xml замість простого числа. Слідуючи цій темі, я спробував це:
<xsl:when test="responsetime/@value >= 5000 and responsetime/@value <= 8999">
яка генерувала помилку. Це працює:
<xsl:when test="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
Не розумію, чому це не працює без числа (), хоча. Чи може бути, що без числа () значення трактується як рядок, і ви не можете порівнювати числа з рядком?
У будь-якому випадку, сподіваюся, це заощадить когось багато пошуку ...