我正在使用xslt将此xml表转换为pdf。条目/ @ namest标识跨度开始的位置,entry / @ nameend标识跨度应该结束的位置。
我之前使用数字@colname值跨越了单元格但是这个让我很难过。请帮忙。
这是我的源xml:
<table>
<title>table title</title>
<tgroup cols="5" colsep="1" rowsep="1">
<colspec colname="colspec0" colwidth="557*"/>
<colspec colname="colspec2" colwidth="823*"/>
<colspec colname="colspec1" colwidth="702*"/>
<colspec colname="col1" colwidth="4452*"/>
<colspec colname="col2" colwidth="4646*"/>
<thead>
<row>
<entry namest="colspec0" nameend="col1" valign="middle" align="center">
<para>this cell should span to 4th column</para>
</entry>
<entry valign="middle" align="center">
<para>non span cell</para>
</entry>
</row>
</thead>
<tbody>...</tbody>
</tgroup>
</table>
这是我的xslt:
的片段<xsl:template match="colspec">
<fo:table-column>
<xsl:attribute name="column-number"><xsl:value-of select="count(preceding-sibling::colspec + 1)"></xsl:value-of></xsl:attribute>
<xsl:attribute name="column-width"><xsl:value-of select="$mm-to-in"></xsl:value-of></xsl:attribute>
<xsl:apply-templates/>
</fo:table-column>
</xsl:template>
<xsl:template match="entry">
<fo:table-cell empty-cells="show" xsl:use-attribute-sets="table.cell.padding">
<xsl:if test="@namest and @nameend">
<xsl:attribute name="number-columns-spanned">
<xsl:value-of select="(@nameend - @namest) + 1"/>
</xsl:attribute>
</xsl:if>
<fo:block>
<xsl:choose>
<xsl:when test="string-length(text()) < 1">
<xsl:apply-templates/> 
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>