已解决的
多亏了@IanRoberts,我必须在我的节点上使用normalize space函数来检查它们是否为空。
<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
This worked perfectly fine.
</xsl:if>
Problem
我正在尝试创建一个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>
I,然后尝试使用单个xsl:if条件,下面是观察结果
<xsl:if test="node/ABC!=''>
**This is working fine**
</xsl:if>
但是,如果我尝试搜索空条件,即
<xsl:if test="node/ABC=''>
**This does not work**
</xsl:if>
另外,如果我尝试使用== (双精度等于),那么它会给出xslt错误。i.e
<xsl:if test="node/ABC==''>
***This gives a compilation error***
</xsl:if>
我需要帮助弄清楚如何让我的xsl:if测试工作,以检查多个条件。提前感谢。
编辑:在这里更新所有节点都不为空的if条件,当我尝试检查三个空节点中的任何其他节点时,它不起作用。
例如:
<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' ">
This condition works perfectly fine.
</xsl:if>
https://stackoverflow.com/questions/21381055
复制相似问题