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

XSL1.0如何筛选XML重复节点中符合指定规则的request元素

问题原因

你当前使用的XPath仅做了正向匹配:只要request节点下存在name为B/O/N的list就会被选中,没有额外做排除校验,既没有过滤掉同时包含E/G的节点,也没有保证request下所有list的name都仅属于B/O/N范围,因此会输出不符合要求的条目。

修正后的XSL模板
<xsl:template name="simplified">
    <xsl:for-each select="categories/request[not(list[not(@name='B' or @name='O' or @name='N')])]">
        <fo:block>
            <xsl:value-of select="@type"/>
        </fo:block>
    </xsl:for-each>
</xsl:template>
筛选逻辑说明

not(list[not(@name='B' or @name='O' or @name='N')]) 条件的含义是:当前request节点下不存在任何name属性不属于{B,O,N}集合的list子节点,完全匹配你提出的三条筛选规则:

  • 自动排除所有包含E/G的request节点(符合规则3)
  • 保留的节点所有list的name都仅为B/O/N(符合规则1)
  • 自然覆盖B搭配O/N的保留场景(符合规则2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:02