xml文档
<?xml version="1.0" encoding="ISO-8859-1" ?>
<NVELOPE>
<PAYSTITLE>No. of Days</PAYSTITLE>
<PAYSVALUE>8 Days</PAYSVALUE>
<ETITLE>Basic Pay - Project</ETITLE>
<EAMT>-45.00</EAMT>
<ETITLE>House Rent</ETITLE>
<EAMT>-08.00</EAMT>
<ETITLE>Transport</ETITLE>
<EAMT>-18.00</EAMT>
<ETITLE>Special</ETITLE>
<EAMT>-15.00</EAMT>
<ETITLE>Variable Pay</ETITLE>
<EAMT>-15.00</EAMT>
<ETITLE>Bonus</ETITLE>
<EAMT>-8.00</EAMT>
<DTITLE>M D S</DTITLE>
<DAMT>50.00</DAMT>
<DTITLE>Fund</DTITLE>
<DAMT>95.00</DAMT>
<DTITLE>Tax</DTITLE>
<DAMT>25.00</DAMT>
</NVELOPE>
我需要使用XSLT和XSL-FO格式化PDF格式的数据
我希望数据在两个相邻的表中并行分布。
我基本上不知道如何获得两个相邻的表,或者你可以使用一个包含四列的表,但是我无法正确地分发数据......
title amt title amt
title amt title amt
title amt title amt
title amt title amt
title amt title amt
这是我想要的方式....请事先帮助我谢谢...... :)
答案 0 :(得分:3)
您可以使用两列表格来完成此操作,该表格包含您想要并排放在一行中的表格。
<fo:table>
<fo:table-column column-number="1"/>
<fo:table-column column-number="2"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>
<TABLE 1 HERE>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>
<TABLE 2 HERE>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
使用这些表,您可以使用xsl:if + position()来限制填充子表的数据。
答案 1 :(得分:0)
以四个为一组处理元素:
<xsl:template match="NVELOPE">
<fo:table>
<fo:table-body>
<xsl:call-template name="row" />
</fo:table-body>
</fo:table>
</xsl:template>
<xsl:template name="row">
<xsl:param name="cells" select="*" />
<fo:table-row>
<fo:table-cell>
<fo:block><xsl:apply-templates select="$cells[1]" /></fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block><xsl:apply-templates select="$cells[2]" /></fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block><xsl:apply-templates select="$cells[3]" /></fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block><xsl:apply-templates select="$cells[4]" /></fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:if test="count($cells) > 4">
<xsl:call-template name="row">
<xsl:with-param name="cells" select="$cells[position() > 4]" />
</xsl:call-template>
</xsl:if>
</xsl:template>
如果元素的数量不是4的倍数,则会产生fo:table-cell
,其中包含空行fo:block
。