[解决了]
感谢@IanRoberts,我不得不在我的节点上使用normalize-space函数来检查它们是否为空。
<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>
另外,如果我尝试一个==(双等于),那么它会给出xslt错误。即
<xsl:if test="node/ABC==''> ***This gives a compilation error*** </xsl:if>
我想帮忙了解如何获取我的xsl:如果测试工作来检查多个条件。提前致谢。
[编辑]:只是为了在这里更新所有节点不为空的if条件可以工作,当我尝试检查空的三个节点中的任何其他节点时,它不起作用。
例如:
<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' "> This condition works perfectly fine. </xsl:if>
感谢@IanRoberts,我不得不在我的节点上使用normalize-space函数来检查它们是否为空。
<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))"> This worked perfectly fine. </xsl:if>