xsl:when 不能在 xsl-fo 中工作?

xsl:when not working in xsl-fo?

我有这样的示例代码:

<fo:block>
    <xsl:value-of select="totalsForMonth/@totalI" />
</fo:block>

<xsl:when test="totalsForMonth/@totalI != '0.0'">
    <fo:block>
        <xsl:value-of select="totalsForMonth/@totalI" />
    </fo:block>
</xsl:when>

输出将是:

13.0

在导出的 pdf 中。

我期待看到

13.0
13.0

我做错了什么?

您混淆了 xsl:whenxsl:if

xsl:when 是 select 块内的不同情况 xsl:choose (http://xml.apache.org/xalan-j/xsltc/xsl_choose_design.html). For a single test, use xsl:if (http://xml.apache.org/xalan-j/xsltc/xsl_if_design.html).

与 C 或 Java 相比:xsl:choose 并不完全不同于 switch 语句,只是 条件 when 块而不是 choose 本身。这意味着您可以在每个测试中放置您想要的任何测试,更像是一个长链 if .. else if .. 块,其中 xsl:otherwise 具有最终 else.

的作用