XSLT:如何模拟IF-ELSE子句

时间:2017-01-31 11:51:31

标签: if-statement xslt

问题:

IF COND1 = true
{
    WHEN COND2 = TRUE
    {
        PRINT X1
    }
    OTHERWISE 
    {
        WHEN COND3 = TRUE {PRINT X2}
        OTHERWISE {PRINT X3}
    }
}

我用于COND1,对于COND2和COND3,但它的打印值X1适用于所有条件。有人可以告诉我如何应用上述情况吗?

<xsl:if test="($Id='5')">
<xsl:choose>
 <xsl:when test="(Cond='') "></xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(Cond='true')or(Cond='Y')">Y</xsl:when>                                                                                   
<xsl:otherwise>N</xsl:otherwise></xsl:choose>
</xsl:otherwise>    
</xsl:choose>
</xsl:if>

2 个答案:

答案 0 :(得分:0)

XSLT中没有IF-ELSE 但您可以使用<xsl:if><xsl:choose> - 正如@ michael.hor257k建议的那样 - 结果相同。

所以这里是你的示例代码的伪代码:

<xsl:if test="COND1 = TRUE">
  <xsl:choose>
    <xsl:when test="COND2 = TRUE">
      PRINT X1
    </xsl:when>
    <xsl:otherwise>
      <xsl:choose>
        <xsl:when test="COND3 = TRUE">
          PRINT X2
        </xsl:when>
        <xsl:otherwise>
          PRINT X3
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:if>

答案 1 :(得分:0)

这可能对您有所帮助

<xsl:choose>                                                                                                                                                        
    <xsl:when test="($Id='5') and (Cond='')"></xsl:when>                                                                      
    <xsl:otherwise>
        <xsl:choose>
            <xsl:when test="(Cond='true') or (Cond='Y')">Y</xsl:when>
            <xsl:otherwise>N</xsl:otherwise>
        </xsl:choose>
    </xsl:otherwise>                             
</xsl:choose>