以下两个代码之间有什么区别?两个代码都检查标签中是否存在属性:
<xsl:choose> <xsl:when test="string-length(DBE:Attribute[@name='s0SelectedSite']/node()) > 0"> <table> ... </table> </xsl:when> <xsl:otherwise> <table> ... </table> </xsl:otherwise> </xsl:choose>
和
<xsl:if test="@Col1-AllocValue"> <xsl:copy-of select="@Col1-AllocValue"/> </xsl:if>
选择的结构是
原文链接:https://www.f2er.com/xml/292774.html<xsl:choose> <xsl:when test="a">A</xsl:when> <xsl:when test="b">B</xsl:when> <xsl:when test="c">C</xsl:when> <xsl:when test="...">...</xsl:when> <xsl:otherwise>Z</xsl:otherwise> </xsl:choose>
这允许对第一测试执行多次检查和一个操作来评估为真. xsl:否则用于在没有任何检查计算为true时执行默认操作;特别地,这有利于一个if-then-else结构(只有一个xsl:当替代加一个xsl:否则的块).
总是让我惊讶的是,xsl:如果不允许使用xsl:else替代方法,但是在xsl:choose结构中可以使用,我猜这是不被添加的.也许下一个XSLT版本将包含一个xsl:else?
对于其余的,xsl中的测试:when和in xsl:如果做完全相同的事情:检查条件.
注意xsl的结构如果是简单的
<xsl:if test="a">A</xsl:if>
单身
<xsl:when test="a">A</xsl:when>
将无效:xsl:当元素始终是xsl的子代时:choose.而xsl:选择可能有孩子xsl:when和xsl:否则只有.