Html CALS表未正确创建
我有以下XML代码(表)Html CALS表未正确创建,html,xml,xslt,Html,Xml,Xslt,我有以下XML代码(表) 比尔 不可以 纳马·彭贝里 编号:KP 阿拉马特彭贝里酒店 塔里克勒隆 塔里克卢普特 哈尔加·里扎布 哈尔加·华兰 押金10%哈尔加·里扎布 巴基90%哈尔加贝利安 他是我的朋友和朋友 这是一个很好的例子 塔里克·切克·巴亚兰·迪卢阿尔坎/迪汉塔·凯帕达·佩纳瓦尔 塔里克 不,重新开始 朱姆拉 塔里克 不,重新开始 朱姆拉 我使用的XSLT如下: <xsl:template name="table" match="table"> &l
比尔
不可以
纳马·彭贝里
编号:KP
阿拉马特彭贝里酒店
塔里克勒隆
塔里克卢普特
哈尔加·里扎布
哈尔加·华兰
押金10%哈尔加·里扎布
巴基90%哈尔加贝利安
他是我的朋友和朋友
这是一个很好的例子
塔里克·切克·巴亚兰·迪卢阿尔坎/迪汉塔·凯帕达·佩纳瓦尔
塔里克
不,重新开始
朱姆拉
塔里克
不,重新开始
朱姆拉
我使用的XSLT如下:
<xsl:template name="table" match="table">
<table class="frame-{current()/@frame}">
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="tgroup">
<xsl:if test="not(preceding-sibling::tgroup)">
<xsl:if test="@colsep|@rowsep|@align|cols">
</xsl:if>
</xsl:if>
<colgroup>
<xsl:apply-templates select=".//colspec" />
</colgroup>
<xsl:apply-templates select="child::node()[not(self::colspec)]" />
</xsl:template>
<xsl:template name="tbody" match="tgroup/tbody">
<tbody>
<xsl:for-each select="current()/row">
<xsl:call-template name="row" />
</xsl:for-each>
</tbody>
</xsl:template>
<xsl:template name="thead" match="tgroup/thead">
<xsl:for-each select="current()/row">
<thead>
<tr>
<xsl:for-each select="current()/entry">
<xsl:call-template name="headentry" />
</xsl:for-each>
</tr>
</thead>
</xsl:for-each>
</xsl:template>
<xsl:template name="colspec" match="colspec">
<xsl:variable name="b">
<xsl:value-of select="sum(../colspec/number(substring-before(@colwidth,'in')))"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="@colnum">
<col class="colnum-{current()/@colnum} colname-{current()/@colname} colwidth-{translate(@colwidth,'*','')}" />
</xsl:when>
<xsl:otherwise>
<col class="colname-{current()/@colname} colwidth-{translate(@colwidth,'*','')}" />
</xsl:otherwise>
</xsl:choose>
<xsl:text disable-output-escaping="yes"><![CDATA[</col>]]></xsl:text>
</xsl:template>
<xsl:template name="row" match="tbody/row">
<tr>
<xsl:for-each select="current()/entry">
<xsl:call-template name="entry" />
</xsl:for-each>
</tr>
</xsl:template>
<xsl:template match="entry" name="entry">
<xsl:choose>
<xsl:when test="./@namest">
<xsl:variable name="namest" select="@namest"/>
<xsl:variable name="nameend" select="@nameend"/>
<xsl:variable name="namestPos" select="count(ancestor::tgroup/colspec[@colname=$namest]/preceding-sibling::colspec)"/>
<xsl:variable name="nameendPos" select="count(ancestor::tgroup/colspec[@colname=$nameend]/preceding-sibling::colspec)"/>
<td colspan="{$nameendPos - $namestPos + 1}" align="{@align}" valign="{@valign}">
<xsl:apply-templates/>
</td>
</xsl:when>
<xsl:when test="@align and ./@morerows">
<td class="align-{@align}" rowspan="{number(./@morerows)+1}" valign="{@valign}">
<xsl:for-each select="para">
<xsl:choose>
<xsl:when test="../@colname='col4' and contains(./text(),'/')">
<xsl:value-of select="concat('er:#MCP_PD_',substring-before(.,'/'),'/','P',translate(./text(),'/','-'))"/>
</xsl:when>
<xsl:otherwise>
<div class="para">
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td>
</xsl:when>
<xsl:when test="./@morerows and not(./@align)">
<td rowspan="{number(./@morerows)+1}" valign="{@valign}">
<xsl:for-each select="para">
<xsl:choose>
<xsl:when test="../@colname='col4' and contains(./text(),'/')">
<xsl:value-of select="concat('er:#MCP_PD_',substring-before(.,'/'),'/','P',translate(./text(),'/','-'))"/>
</xsl:when>
<xsl:otherwise>
<div class="para">
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose></xsl:for-each>
</td>
</xsl:when>
<xsl:otherwise>
<td class="align-{@align}" valign="{@valign}">
<xsl:for-each select="para">
<xsl:choose>
<xsl:when test="../@colname='col4' and contains(./text(),'/')">
<a href="{concat('er:#MCP_PD_',substring-before(.,'/'),'/','P',translate(./text(),'/','-'))}">
<xsl:value-of select="./text()"/>
</a>
</xsl:when>
<xsl:otherwise>
<div class="para">
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="headentry">
<xsl:choose>
<xsl:when test="@align">
<th class="align-{@align}" valign="{@valign}
">
<xsl:if test="translate(current()/@namest,'col','') != translate(current()/@nameend,'col','')">
<xsl:variable name="colspan">
<xsl:value-of select="number(translate(@nameend,'col','')) - number(translate(@namest,'col','')) + 1" />
</xsl:variable>
<xsl:attribute name="colspan">
<xsl:value-of select="$colspan">
</xsl:value-of>
</xsl:attribute>
</xsl:if>
<xsl:for-each select="para">
<div class="para">
<xsl:apply-templates></xsl:apply-templates>
</div>
</xsl:for-each>
</th>
</xsl:when>
<xsl:otherwise>
<th>
<xsl:if test="translate(current()/@namest,'col','') != translate(current()/@nameend,'col','')">
<xsl:variable name="colspan">
<!-- <xsl:value-of select="translate(current()/@nameend,'col','') - translate(current()/@namest,'col','') + 1" />-->
</xsl:variable>
<xsl:attribute name="colspan">
<xsl:value-of select="$colspan">
</xsl:value-of>
</xsl:attribute>
</xsl:if>
<xsl:for-each select="para">
<div class="para">
<xsl:apply-templates></xsl:apply-templates>
</div>
</xsl:for-each>
</th>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
]]>
输出的html代码如下所示
<table class="frame-all">
<colgroup>
<col class="colnum-1 colname-col1 colwidth-9"></col><col class="colnum-2 colname-col2 colwidth-12"></col><col class="colnum-3 colname-col3 colwidth-14"></col><col class="colnum-4 colname-col4 colwidth-10"></col><col class="colnum-5 colname-col5 colwidth-11"></col><col class="colnum-6 colname-col6 colwidth-11"></col><col class="colnum-7 colname-col7 colwidth-11"></col><col class="colnum-8 colname-col8 colwidth-11"></col><col class="colnum-9 colname-col9 colwidth-11"></col></colgroup>
<tbody>
<tr>
<td class="align-center" valign="top">
<div class="para">BIL</div>
</td>
<td class="align-center" valign="top">
<div class="para">NO KES</div>
</td>
<td class="align-center" valign="top">
<div class="para">NAMA PEMBELI</div>
</td>
<td class="align-center" valign="top">
<div class="para">NO. KP</div>
</td>
<td class="align-center" valign="top">
<div class="para">ALAMAT PEMBELI</div>
</td>
<td class="align-center" valign="top">
<div class="para">TARIKH LELONG</div>
</td>
<td class="align-center" valign="top">
<div class="para">TARIKH LUPUT</div>
</td>
<td class="align-center" valign="top">
<div class="para">HARGA RIZAB</div>
</td>
<td class="align-center" valign="top">
<div class="para">HARGA JUALAN</div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
</tbody>
</table>
<table class="frame-all">
<colgroup>
<col class="colnum-1 colname-col1 colwidth-6"></col><col class="colnum-2 colname-col2 colwidth-6"></col><col class="colnum-3 colname-col3 colwidth-6"></col><col class="colnum-4 colname-col4 colwidth-6"></col><col class="colnum-5 colname-col5 colwidth-7"></col><col class="colnum-6 colname-col6 colwidth-7"></col><col class="colnum-7 colname-col7 colwidth-25"></col><col class="colnum-8 colname-col8 colwidth-10"></col><col class="colnum-9 colname-col9 colwidth-15"></col></colgroup>
<tbody>
<tr>
<td colspan="3" align="center" valign="top">
<div class="para">DEPOSIT 10% HARGA RIZAB</div>
</td>
<td colspan="3" align="center" valign="top">
<div class="para">BAKI 90% HARGA BELIAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIKH PEMYATA BAILIF DAN BAUCARDISEDIAKAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIKH PENYATA DAN TARIKH BAUCAR DIHANTAR KE BAHAGIAN KEWANGAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIK CEK BAYARAN DIKELUARKAN/DIHANTAR KEPADA PENAWAR</div>
</td>
</tr>
<tr>
<td class="align-center" valign="top">
<div class="para">Tarikh</div>
</td>
<td class="align-center" valign="top">
<div class="para">No. Resit</div>
</td>
<td class="align-center" valign="top">
<div class="para">Jumlah</div>
</td>
<td class="align-left" valign="top">
<div class="para">Tarikh</div>
</td>
<td class="align-center" valign="top">
<div class="para">No. Resit</div>
</td>
<td class="align-center" valign="top">
<div class="para">Jumlah</div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
</tbody>
</table>
比尔
不可以
纳马·彭贝里
编号:KP
阿拉马特彭贝里酒店
塔里克勒隆
塔里克卢普特
哈尔加·里扎布
哈尔加·华兰
押金10%哈尔加·里扎布
巴基90%哈尔加贝利安
他是我的朋友和朋友
<table class="frame-all">
<colgroup>
<col class="colnum-1 colname-col1 colwidth-9"></col><col class="colnum-2 colname-col2 colwidth-12"></col><col class="colnum-3 colname-col3 colwidth-14"></col><col class="colnum-4 colname-col4 colwidth-10"></col><col class="colnum-5 colname-col5 colwidth-11"></col><col class="colnum-6 colname-col6 colwidth-11"></col><col class="colnum-7 colname-col7 colwidth-11"></col><col class="colnum-8 colname-col8 colwidth-11"></col><col class="colnum-9 colname-col9 colwidth-11"></col></colgroup>
<tbody>
<tr>
<td class="align-center" valign="top">
<div class="para">BIL</div>
</td>
<td class="align-center" valign="top">
<div class="para">NO KES</div>
</td>
<td class="align-center" valign="top">
<div class="para">NAMA PEMBELI</div>
</td>
<td class="align-center" valign="top">
<div class="para">NO. KP</div>
</td>
<td class="align-center" valign="top">
<div class="para">ALAMAT PEMBELI</div>
</td>
<td class="align-center" valign="top">
<div class="para">TARIKH LELONG</div>
</td>
<td class="align-center" valign="top">
<div class="para">TARIKH LUPUT</div>
</td>
<td class="align-center" valign="top">
<div class="para">HARGA RIZAB</div>
</td>
<td class="align-center" valign="top">
<div class="para">HARGA JUALAN</div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
</tbody>
</table>
<table class="frame-all">
<colgroup>
<col class="colnum-1 colname-col1 colwidth-6"></col><col class="colnum-2 colname-col2 colwidth-6"></col><col class="colnum-3 colname-col3 colwidth-6"></col><col class="colnum-4 colname-col4 colwidth-6"></col><col class="colnum-5 colname-col5 colwidth-7"></col><col class="colnum-6 colname-col6 colwidth-7"></col><col class="colnum-7 colname-col7 colwidth-25"></col><col class="colnum-8 colname-col8 colwidth-10"></col><col class="colnum-9 colname-col9 colwidth-15"></col></colgroup>
<tbody>
<tr>
<td colspan="3" align="center" valign="top">
<div class="para">DEPOSIT 10% HARGA RIZAB</div>
</td>
<td colspan="3" align="center" valign="top">
<div class="para">BAKI 90% HARGA BELIAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIKH PEMYATA BAILIF DAN BAUCARDISEDIAKAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIKH PENYATA DAN TARIKH BAUCAR DIHANTAR KE BAHAGIAN KEWANGAN</div>
</td>
<td class="align-left" rowspan="2" valign="top">
<div class="para">TARIK CEK BAYARAN DIKELUARKAN/DIHANTAR KEPADA PENAWAR</div>
</td>
</tr>
<tr>
<td class="align-center" valign="top">
<div class="para">Tarikh</div>
</td>
<td class="align-center" valign="top">
<div class="para">No. Resit</div>
</td>
<td class="align-center" valign="top">
<div class="para">Jumlah</div>
</td>
<td class="align-left" valign="top">
<div class="para">Tarikh</div>
</td>
<td class="align-center" valign="top">
<div class="para">No. Resit</div>
</td>
<td class="align-center" valign="top">
<div class="para">Jumlah</div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
<tr>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
<td class="align-left" valign="top">
<div class="para"></div>
</td>
</tr>
</tbody>
</table>
<row>
<entry namest="col1" nameend="col3" align="center" valign="top" colsep="1"><para>DEPOSIT 10% HARGA RIZAB</para></entry>
<entry namest="col4" nameend="col6" align="center" valign="top" colsep="1"><para>BAKI 90% HARGA BELIAN</para></entry>
<entry colname="col7" align="left" valign="top" colsep="1" rowsep="1" morerows="1"><para>TARIKH PEMYATA BAILIF DAN BAUCARDISEDIAKAN</para></entry>
<entry colname="col8" align="left" valign="top" colsep="1" rowsep="1" morerows="1"><para>TARIKH PENYATA DAN TARIKH BAUCAR DIHANTAR KE BAHAGIAN KEWANGAN</para></entry>
<entry colname="col9" align="left" valign="top" rowsep="1" morerows="1"><para>TARIK CEK BAYARAN DIKELUARKAN/DIHANTAR KEPADA PENAWAR</para></entry>
</row>
<row rowsep="1">
<entry colname="col1" align="center" valign="top"><para>Tarikh</para></entry>
<entry colname="col2" align="center" valign="top"><para>No. Resit</para></entry>
<entry colname="col3" align="center" valign="top" colsep="1"><para>Jumlah</para></entry>
<entry colname="col4" align="left" valign="top"><para>Tarikh</para></entry>
<entry colname="col5" align="center" valign="top"><para>No. Resit</para></entry>
<entry colname="col6" align="center" valign="top" colsep="1"><para>Jumlah</para></entry>
</row>
<col class="colnum-1 colname-col1 colwidth-9"/></col>
<col class="colnum-1 colname-col1 colwidth-9"/>
<col class="colnum-1 colname-col1 colwidth-9"></col>