Можете ли вы указать два условия в атрибуте теста xslt? - PullRequest
118 голосов
/ 26 ноября 2008

Правильно ли это для случаев, когда 4 <5 и 1 <2? </p>

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

Ответы [ 4 ]

201 голосов
/ 26 ноября 2008

Не совсем, AND должно быть в нижнем регистре.

<xsl:when test="4 &lt; 5 and 1 &lt; 2">
<!-- do something -->
</xsl:when>
32 голосов
/ 26 ноября 2008

Он должен быть заключен в , поскольку это когда. И строчные буквы "и".

<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 голосов
/ 26 ноября 2008

С XML.com :

Как xsl: если инструкции, xsl: когда элементы могут быть более сложными содержание между их началом и конечные теги - например, буквальный результат elements, xsl: element elements, или даже xsl: if и xsl: выбирать элементы - для добавить в дерево результатов. Их тест выражения также могут использовать все хитрости и операторы, которые XSL: если атрибут test элемента может использовать, например, как и, или, и вызовы функций, чтобы построить более сложный логический выражения.

5 голосов
/ 13 марта 2014

Может быть, это не просто для xslt-professional, но для меня на начальном / среднем уровне это меня озадачило. Я хотел сделать то же самое, но мне нужно было протестировать значение responsetime из 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">

Не совсем понимаю, почему без числа () это не работает. Может ли быть так, что без number () значение рассматривается как строка, и вы не можете сравнивать числа со строкой?

Во всяком случае, надеюсь, что это спасет кого-то много поиска ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...