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

XSLT中for-each内用Count()统计接口出现次数遇0值问题求助

XSLT统计接口用例出现次数问题解决

你的核心问题是上下文切换错误:当你在<xsl:for-each select="$interface_list/header_xml/interface">循环中时,当前上下文是interface_list.xml文档的节点,此时用//testcase会在这个外部文档里查找节点,自然找不到主文档中的testcase,所以统计结果始终为0。

修正方案

提前将主文档中需要检查的节点存入变量,在循环外部文档节点时直接引用该变量,彻底规避上下文冲突:

<!-- 提前存储主文档中所有需要检查的extendedinfo节点 -->
<xsl:variable name="main_extended_nodes" select="/testmodule/testgroup/testcase/extendedinfo" />

<xsl:variable name="interface_list" select="document('interface_list.xml')" />
        
<xsl:for-each select="$interface_list/header_xml/interface">
    <!-- 直接获取当前接口名称,无需额外value-of转换 -->
    <xsl:variable name="current_interface" select="."/>
    <tr>
        <td class="NumberCell" width="60">
            <!-- 引用预存的主文档节点进行统计 -->
            <xsl:value-of select="count($main_extended_nodes[contains(., $current_interface)])"/>
        </td>            
    </tr>               
</xsl:for-each>

说明

  1. $main_extended_nodes变量一次性抓取主文档中所有extendedinfo节点,后续循环无需再切换上下文查找
  2. 直接用select="."获取当前接口名称,比<xsl:value-of>更简洁高效
  3. 按你的示例数据运行,会得到正确结果:
    • 12345:2次
    • 654321:2次
    • 123654:2次
    • 112233:0次

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:15:43