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

如何为多条件应用XSL模板?解决重复调用问题

解决方案

你的问题出在原始的select表达式会同时匹配data和data/item节点(当item存在时),导致模板被重复调用。要实现**仅当data/item存在时调用模板处理item,否则处理data**的逻辑,可以修改XPath选择器:

<xsl:apply-templates select="data/item | data[not(item)]" mode="testMode" />

逻辑说明

  • data/item:当data下存在item节点时,选中所有item元素,此时模板会作用于每个item。
  • data[not(item)]:仅当data下没有item节点时,才选中data元素,此时模板作用于data本身。
  • 两者通过|(并集运算符)组合,确保只会匹配其中一组节点,不会重复调用模板。

场景验证

  • 对于你提供的示例XML(包含data/item),只会选中item节点,模板会分别处理<item>AAA</item>和<item>BBB</item>。
  • 如果data下没有item节点,会选中data节点,模板仅处理一次data元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:44:53