使用xsl:if在xsl中:否则我xslt 1.0

时间:2014-05-09 07:59:30

标签: xslt-1.0

请问请问下面的xsl标签实现是否正确,因为我怀疑我使用xsl的方式:if ()在xsl中:否则是不正确的我们应该使用xsl:当第二个条件也是..

<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>

2 个答案:

答案 0 :(得分:1)

从语法上讲,可以将<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>

答案 1 :(得分:0)

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>