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

XSL模板内调用模板失效及条件调用failure模板咨询

解决XSL模板内调用模板的条件判断及生效问题

首先看你的代码里的核心问题:原来注释中的条件用了and,这意味着要同时满足test-result是FAILURE和SKIP——这显然不可能,所以模板永远不会被调用。我们先修正条件逻辑,再排查调用不生效的其他可能原因。

一、修正条件判断逻辑

你需要把and改成or,同时确保条件针对当前execution-output节点下的test-result子节点。修正后的代码如下:

<xsl:for-each select="execution-output">
    <!-- 当execution-output下存在result为FAILURE或SKIP的test-result时,调用failure模板 -->
    <xsl:if test="test-result[@result = 'FAILURE' or @result = 'SKIP']">
        <xsl:call-template name="failure"/>
    </xsl:if>
</xsl:for-each>

如果你的场景是每个符合条件的test-result都对应一次调用(比如一个execution-output下有多个test-result),可以调整逻辑,直接遍历目标节点:

<xsl:for-each select="execution-output/test-result[@result = 'FAILURE' or @result = 'SKIP']">
    <xsl:call-template name="failure"/>
</xsl:for-each>

二、排查模板调用不生效的常见原因

如果修正条件后还是无法调用failure模板,建议从以下几点逐一排查:

  • 模板名称是否完全匹配:XSL对名称大小写敏感,检查定义failure模板时的name属性是否和调用时完全一致。示例正确定义应该是:

    <xsl:template name="failure">
        <!-- 你的模板处理内容 -->
    </xsl:template>
    
  • 节点上下文是否正确:确认execution-output节点下确实存在符合条件的test-result。可以添加调试信息验证:

    <xsl:for-each select="execution-output">
        <xsl:message>当前execution-output的test-result值:<xsl:value-of select="test-result/@result"/></xsl:message>
        <xsl:if test="test-result[@result = 'FAILURE' or @result = 'SKIP']">
            <xsl:call-template name="failure"/>
        </xsl:if>
    </xsl:for-each>
    

    运行时查看输出的调试信息,确认是否存在符合条件的节点。

  • 命名空间是否匹配:如果你的XML文档中test-result或result属性带有命名空间,需要在XSL中声明对应的命名空间前缀,并在条件中使用。比如:

    <!-- 顶部声明命名空间 -->
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:test="http://your-namespace-url">
        <!-- 条件中使用前缀 -->
        <xsl:if test="test:test-result[@test:result = 'FAILURE' or @test:result = 'SKIP']">
            <xsl:call-template name="failure"/>
        </xsl:if>
    </xsl:stylesheet>
    
  • 模板是否被正确引入:如果failure模板定义在另一个XSL文件中,需要用<xsl:import>或<xsl:include>将其引入到当前模板所在的样式表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:54:44