You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT if条件报错:缺少必填属性'test',求解决方案

搞定XSL <xsl:if>的test属性错误

嘿,这个Required attribute 'test' is missing的报错有点迷惑人——你明明写了test属性,问题出在你把Java语法用到XPath表达式里了,XSLT解析器识别不了这些写法,才会误判test属性有问题。咱们一步步改:

原代码的核心问题

你的test条件里混用了Java语法,但XPath有自己的规则:

  • 比较相等用=而非Java里的==
  • 没有null的写法,空字符串用'',判断节点不存在用not(discount)
  • 不用equals()方法,直接用=做字符串比较
  • 逻辑非用not(...)包裹条件,不是!

修正后的可用代码

<xsl:if test="(price = 'Y') and not(discount = '' or discount = '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>

额外注意点

XPath是大小写敏感的!你代码里判断的是小写的price,但取值用的是大写的Discount,一定要和XML源文档里的节点名称完全一致,不然条件会一直不生效哦。

内容的提问来源于stack exchange,提问作者Karthikeyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:20:43