内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
<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>