Чи можете ви поставити дві умови в атрибут xslt test?


Відповіді:


211

Не зовсім, ІН має бути малі.

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

33

Його потрібно загорнути в <xsl: select>, оскільки це коли. І малі знаки "і".

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

6

З XML.com :

Як і xsl: якщо інструкції, xsl: коли елементи можуть мати більш детальний вміст між їх початковим і кінцевим тегами - наприклад, буквальні елементи результату, xsl: елементи елементів, або навіть xsl: if і xsl: вибирати елементи - додати до дерево результатів. Їх тестові вирази можуть також використовувати всі хитрощі та оператори, якими може користуватися тест-атрибут xsl: якщо тестовий атрибут елемента, такий як і, або, та виклики функцій, для створення більш складних булевих виразів.


5

Можливо, це не-мозок для xslt-professional, але для мене на початковому та середньому рівні це мене спантеличило. Я хотів зробити саме те ж саме, але мені довелося перевірити значення реанімації з xml замість простого числа. Слідуючи цій темі, я спробував це:

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

яка генерувала помилку. Це працює:

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

Не розумію, чому це не працює без числа (), хоча. Чи може бути, що без числа () значення трактується як рядок, і ви не можете порівнювати числа з рядком?

У будь-якому випадку, сподіваюся, це заощадить когось багато пошуку ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.