我有这样的示例代码:
<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
我做错了什么?
答案 0 :(得分:2)
您正在将xsl:when
与xsl:if
混合。
xsl:when
用于在xsl:choose
块(http://xml.apache.org/xalan-j/xsltc/xsl_choose_design.html)中选择不同的案例。对于单个测试,请使用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
具有最终SELECT (CASE WHEN SrNo = 1
THEN ANAME
ELSE ''
END) AS ANAME
, BNAME
FROM (
SELECT ROW_NUMBER OVER (PARTITION BY dbo.A.NAME ORDER BY dbo.B.NAME) AS SrNo,
dbo.A.NAME AS ANAME, dbo.B.NAME AS BNAME
FROM dbo.A LEFT OUTER JOIN
dbo.B ON dbo.A.AID = dbo.B.AID
) AS tbl
的角色。