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:when
和 xsl: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
.
的作用
我有这样的示例代码:
<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:when
和 xsl: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
.