检查属性是否等于值、不同于值或未定义



我有以下xsl:choot标记基于特定条件

<MaturityDate>
 <xsl:choose>
    <xsl:when test="../../../../@name !='WQA'">
        <xsl:value-of select="Apsml:unadjustedDate"/>
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="Apsml:adjustedTerminationDate"/>
    </xsl:otherwise>
 </xsl:choose>
</MaturityDate>

现在如上所示,如果名称等于WQA,则执行某些操作,或者如果产品不是WQA,那么执行某些操作。现在我想添加第三个条件,如果以上两个条件都不成立,那么它应该显示空

<xsl:value-of select="'null'" />

请建议如何添加第三个条件,如果这两个条件都不成立,那么它应该在最后一个显示为null

属性name的值可以等于'WQA',也可以不同于'WQA';(唯一的)另一种选择是该属性不存在。

因此,您可以使用:

<xsl:choose>
    <xsl:when test="../../../../@name ='WQA'">
        <xsl:value-of select="Apsml:adjustedTerminationDate" /> 
    </xsl:when>
    <xsl:when test="../../../../@name !='WQA'">
        <xsl:value-of select="Apsml:unadjustedDate" /> 
    </xsl:when>
    <xsl:otherwise>
        <!-- @name does not exist -->
        <xsl:value-of select="'null'" />
    </xsl:otherwise>
</xsl:choose>

如果您想在属性不存在的情况下显式检查用例,可以使用测试not(../../../../@name)

相关内容

  • 没有找到相关文章