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

XML节点值OR条件判断失效问题求助

XSLT条件判断逻辑错误修复方案

你当前的问题出在逻辑运算符用错了:要判断节点值既不是ABC也不是XYZ,应该用and而非or。

为什么原来的写法全失效?

不管paymentMethodCode的值是什么,你的or条件永远为true:

  • 如果值是ABC,!= 'XYZ'成立,整个or结果为真
  • 如果值是XYZ,!= 'ABC'成立,整个or结果为真
  • 如果是其他值,两个判断都成立,or结果还是真
    所以你的<xsl:if>会无条件执行,完全起不到过滤作用。

正确写法示例

写法1:用and连接两个不等于判断

<xsl:if test="applicationData/remittingAccount/paymentMethodCode != 'ABC' and applicationData/remittingAccount/paymentMethodCode != 'XYZ'">

写法2:用not()包裹等于判断的or逻辑(更符合自然语义)

<xsl:if test="not(applicationData/remittingAccount/paymentMethodCode = 'ABC' or applicationData/remittingAccount/paymentMethodCode = 'XYZ')">

写法3:XPath 2.0+支持的简洁语法

<xsl:if test="applicationData/remittingAccount/paymentMethodCode not in ('ABC', 'XYZ')">

你之前尝试的三种错误写法

<xsl:if test="(applicationData/remittingAccount/paymentMethodCode != 'ABC' or 
 applicationData/remittingAccount/paymentMethodCode != 'XYZ')">
<xsl:if test="(applicationData/remittingAccount/paymentMethodCode != 'ABC') or 
 (applicationData/remittingAccount/paymentMethodCode != 'XYZ')">
<xsl:if test="applicationData/remittingAccount/paymentMethodCode != 'ABC' or 
 applicationData/remittingAccount/paymentMethodCode != 'XYZ'">

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:36:00