我知道这可能看起来像一个愚蠢/新手的问题,但我对 XSLT 相当新(虽然我开始接触它并看到它的功能)。
何时使用 xsl:if 以及何时使用 xsl:choose / xsl:when ?
我一直在使用choose / when /否则我想要一个“else”选项。它是否正确?
例如我有一些我正在做的地方:
<xsl:choose>
<xsl:when test="count(entry) != 0">
put positive outcome here
</xsl:when>
<xsl:otherwise>
put something else here
</xsl:otherwise>
</xsl:choose>
会xsl:如果更好吗?
感谢您的投入。
答案 0 :(得分:6)
对于您只想测试表达式是否为true的简单情况,请使用xsl:if
。 (请注意,没有相应的xsl:else
。)
<xsl:if test="expression">
output if the expression is true
</xsl:if>
如果表达式为false,则使用xsl:choose
表示有备用输出的情况。
<xsl:choose>
<xsl:when test="expression">
output if the expression is true
</xsl:when>
<xsl:otherwise>
output if the expression is false
</xsl:otherwise>
</xsl:choose>
答案 1 :(得分:3)
会xsl:如果更好吗?
不是真的 - 除非你想要两个xsl:if
并确保他们的条件相互排斥。
xsl:choose
将始终精确选择一个可用的xsl:when
或xsl:otherwise
<xsl:when>
元素的<xsl:choose>
子元素按从上到下的顺序进行测试,直到其中一个元素的测试属性准确描述源数据中的条件,或者直到{{达到1}}元素。选择<xsl:otherwise>
或<xsl:when>
元素后,将退出<xsl:otherwise>
块。不需要明确的中断或退出声明。
它非常类似于来自C语言(C,C ++,Java,C#)的<xsl:choose>
语句或来自Visual Basic的Select...Case
xsl:if
没有等同于switch
条款的此类语言的等价物,所以我只推荐它,如果你想做“某事”或不做(也就是说case,你不想指定替代方案)