在xsl: else中使用xsl:if

  • 本文关键字:xsl if else xslt-1.0
  • 更新时间 :
  • 英文 :


请告知下面的xsl标签实现是正确的,因为我怀疑我使用xsl:if的方式()在xsl: else中是不正确的,对于第二个条件我们应该使用xsl:when also.

<xsl:template name="swaption_notional_template_nd_currency">
        <xsl:param name="abcVar"/>
        <xsl:choose>
            <xsl:when test="$ert">              
            </xsl:when>
            <xsl:otherwise>
                <xsl:if test="$abcValue">           
                </xsl:if>
            </xsl:otherwise>
        </xsl:choose>
</xsl:template>

语法上,将<xsl:if></xsl:if>放在<otherwise></otherwise>块中是可以的。但是,正如您已经假设的那样,使用另一个<xsl:when></xsl:when>块是一个更好的选择(并且更容易阅读)。

如果您的<otherwise></otherwise>块包含依赖于<xsl:choose></xsl:choose>块中的测试但独立于<xsl:if></xsl:if>块中的测试的部分,则您的解决方案可能是必要的,例如:

<xsl:choose>
  <xsl:when test="$ert">              
  </xsl:when>
  <xsl:otherwise>
    <!-- SOMETHING happens here -->
    <xsl:if test="$abcValue">           
    </xsl:if>
    <!-- and/or SOMETHING happens here -->
  </xsl:otherwise>
</xsl:choose>
You can use <xsl:if> inside the <xsl:otherwise> block below is example 
<xsl:template name="check">
      <xsl:param name="id"/>
      <xsl:choose>
         <xsl:when test="Response/Specification/Section/Item/Property[id=$id]/Boolean1=1">
            <xsl:text>Y</xsl:text>
         </xsl:when>
         <xsl:otherwise>
            <xsl:if test="Response/Specification/Section/Item/Property[id=$id]/Boolean`enter code here`1=0">
                <xsl:text>N</xsl:text>
            </xsl:if>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>

相关内容

  • 没有找到相关文章

最新更新