Как проверить, какая переменная больше в xsl? - PullRequest
6 голосов
/ 01 февраля 2012
   <xsl:variable name="a">20</xsl:variable>
    <xsl:variable name="b">10</xsl:variable>

      <xsl:if test="($a) > ($b)">
        ------
  </xsl:if>

Я получаю сообщение об ошибке в условии if ..

Ответы [ 2 ]

6 голосов
/ 01 февраля 2012

Попробуйте следующее:

 <xsl:if test="$a &gt; $b">

Попробуйте использовать символьные объекты для операторов> (>) и <(<) в выражениях, в противном случае <em>некоторые парсеры считают, что вы закрываете теграно или открывая другой.

5 голосов
/ 01 февраля 2012

Пример, который вы разместили, должен работать. Тем не менее, вы не должны делать так, чтобы в вашем случае обе переменные имели тип string, что могло бы дать удивительные результаты, если их длина отличается. Поведение оператора сравнения для разных типов данных указано в спецификации xpath для логических значений .

Чтобы избежать этого, вы можете объявить переменные с помощью атрибута select или вручную преобразовать их в число для сравнения:

<xsl:variable name="a" select="20"/>
<xsl:variable name="b" select="10"/>
...
<xsl:if test="number($a) > number($b)">
</xsl:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...