Html CALS表未正确创建

Html CALS表未正确创建,html,xml,xslt,Html,Xml,Xslt,我有以下XML代码(表) 比尔 不可以 纳马·彭贝里 编号:KP 阿拉马特彭贝里酒店 塔里克勒隆 塔里克卢普特 哈尔加·里扎布 哈尔加·华兰 押金10%哈尔加·里扎布 巴基90%哈尔加贝利安 他是我的朋友和朋友 这是一个很好的例子 塔里克·切克·巴亚兰·迪卢阿尔坎/迪汉塔·凯帕达·佩纳瓦尔 塔里克 不,重新开始 朱姆拉 塔里克 不,重新开始 朱姆拉 我使用的XSLT如下: <xsl:template name="table" match="table"> &l

我有以下XML代码(表)


比尔
不可以
纳马·彭贝里
编号: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>