XSLT, если выбрасывается условие - отсутствует обязательный атрибут test - PullRequest
0 голосов
/ 17 мая 2018

Пишу условие XSL if с AND OR.Но он выдает ошибку ниже

Отсутствует обязательный атрибут 'test'.

Пожалуйста, найдите мой XSL, если условие ниже

<xsl:if test= "( (price = 'Y') and !(discount == null || discount.equals('0')) )">
                <div style="font-size: 9px; vertical-align: top; width: 25%;">
                Discount: <xsl:value-of select="Discount" /> % = <xsl:value-of select="lineDiscount" /> EUR
                </div>
</xsl:if>

1 Ответ

0 голосов
/ 17 мая 2018

Есть несколько проблем с вашим выражением (слишком много, чтобы писать в комментариях)

  1. Использовать or вместо ||
  2. Использовать not() вместо ! для отрицания
  3. Использование = вместо == для равенства
  4. null не является концепцией в XSLT.Вы можете использовать not(), если хотите проверить, не существует ли элемент
  5. .equals не является распознанной функцией (и если бы это было так, вам пришлось бы делать equals(distance, '0') в любом случае

Вы, вероятно, хотите получить следующее выражение:

price = 'Y' and not(not(discount) or discount='0')

Или, может быть, это при условии, что вы хотите проверить discount существует и не равно "0":

price = 'Y' and discount != '0'
...