使用多个测试条件进行测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
  This worked perfectly fine.
</xsl:if>

正在尝试创建一个xsl条件,以检查节点组合是否为空

<xsl:if test=" node/ABC!='' and node/DEF='' and node/GHI='' ">
This does not work
</xsl:if>

试过

<xsl:when test="((node/ABC!='') and (node/DEF='') and (node/GHI=''))">
This does not work either..
</xsl:when>

也尝试过

<xsl:if test="(node/ABC!='')>
<xsl:if test="(node/DEF='')>
<xsl:if test="(node/GHI='')">
Nope not working..
</xsl:if>
</xsl:if>
</xsl:if>

然后尝试使用单xsl

<xsl:if test="node/ABC!=''>
**This is working fine**
</xsl:if>

但是,如果试图搜索空条件,即

<xsl:if test="node/ABC=''>
**This does not work**
</xsl:if>

另外,如果尝试使用一个==(Double等于),那么它会给出XSLT错误。

<xsl:if test="node/ABC==''>
***This gives a compilation error***
</xsl:if>

例如:

<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' ">
This condition works perfectly fine.
</xsl:if>
提问于
用户回答回答于

在我的节点上使用规范化空间函数来检查它们是否为空

<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
  This worked perfectly fine.
</xsl:if>
用户回答回答于

使用empty()

<xsl:if test="empty(node/ABC/node()) and empty(node/DEF/node())">
    <xsl:text>This should work</xsl:text>
</xsl:if>

扫码关注云+社区