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

基于XSL if条件显示HTML表格行时遇编译错误求助

问题分析与修复方案

你的XSLT代码出现编译错误的核心原因是在xsl:if的test属性里错误嵌套了xsl:value-of标签,XSLT的属性值中直接使用XPath表达式即可,不需要额外的xsl:value-of来取值。

错误代码的问题点

你原本的写法:

<xsl:if test= <xsl:value-of select="show_discount" /> = 'Y' >

这种写法完全不符合XSLT的语法规范,属性值必须是一个完整的字符串形式的XPath表达式,不能直接嵌入其他XSLT标签,这直接导致了编译器找不到正确的闭合括号,抛出Tag missing closing bracket '>'的错误。

修正后的代码

把test属性改成直接用XPath表达式判断show_discount的值是否等于'Y'即可:

<xsl:if test="show_discount = 'Y'">
    <tr style="font-size:9px">
        <td width="40mm" style="text-align: left; vertical-align: top;">
            Extra Line Discount: <xsl:value-of select="Discount" /> % = <xsl:value-of select="DiscountValue" />
        </td>
    </tr>
</xsl:if>

补充说明

  • XSLT在处理属性中的XPath表达式时,会自动获取当前上下文节点中show_discount元素的文本值,不需要用xsl:value-of来提取。
  • 确保你的XML数据源中确实存在show_discount、Discount、DiscountValue这些节点,否则可能会出现显示为空的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:52:05