美好的一天,请指教。我有一个项目清单:
<List>
<Item>
<Description>Item 1</Description>
<Code>0001</Code>
</Item>
<Item>
<Description>Item 2</Description>
<Code>0002</Code>
</Item>
<Item>
<Description>Item 3</Description>
<Code>0003</Code>
</Item>
<Item>
<Description>Item 4</Description>
<Code>0004</Code>
</Item>
</List>
我想打印一个包含这些项目的 3 列表,如下所示:
| Column 1 | Column 2 | Column 3 |
==================================
| Item 1 | Item 2 | Item 3 |
----------------------------------
| Item 4 | | |
----------------------------------
下面的代码为每个项目呈现表格单元格。它不会呈现第二行中第 2 列和第 3 列的单元格:
<fo:table>
<fo:table-column width="82mm"/>
<fo:table-column width="82mm"/>
<fo:table-column width="82mm"/>
<fo:table-body>
<xsl:for-each select="/List/Item[position() mod 3 = 1]">
<fo:table-row><xsl:apply-templates select=". | following-sibling::*[3 > position()]"/></fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
<xsl:template match="Item">
<fo:table-cell><fo:block><xsl:value-of select="Description"/></fo:block></fo:table-cell>
</xsl:template>
然后将表格打印如下:
| Column 1 | Column 2 | Column 3 |
==================================
| Item 1 | Item 2 | Item 3 |
----------------------------------
| Item 4 |
------------
有没有一种优雅的方式来渲染空的表格单元格,使表格看起来很满?我必须使用 FOP 0.95,xsl 版本 1.0。
先感谢您
沃杰科技