首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Cals表

创建Cals表
EN

Stack Overflow用户
提问于 2013-12-02 11:37:16
回答 1查看 464关注 0票数 0

我有下面的XML文档,其中必须创建一些cals表。

代码语言:javascript
复制
<table frame="none">
    <tgroup cols="5" align="left" colsep="1" rowsep="1">
        <colspec colwidth="20pt" colname="c1"/>
        <colspec colwidth="70pt" colname="c2"/>
        <colspec colwidth="10pt" colname="c3"/>
        <colspec colwidth="20pt" colname="c4"/>
        <colspec colwidth="75pt" colname="c5"/>
        <thead>
            <row>
                <entry>
                    <para>Item</para>
                </entry>
                <entry align="center">
                    <para>Injury</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>Percentage of loss of earning capacity</para>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
        </thead>
        <tbody>
            <row>
                <entry>
                    <para>1.</para>
                </entry>
                <entry>
                    <para>Loss of 2 limbs ...................................................................</para>
                </entry>
                <entry morerows="7">
                    <para>}</para>
                </entry>
                <entry morerows="7">
                    <para>100</para>
                </entry>
                <entry morerows="7">
                    <para></para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>2.</para>
                </entry>
                <entry>
                    <para>Loss of both hands or of all fingers and both thumbs ...</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>3.</para>
                </entry>
                <entry>
                    <para>Loss of both feet ................................................................</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>4.</para>
                </entry>
                <entry>
                    <para>Total loss of sight ...............................................................</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>5.</para>
                </entry>
                <entry>
                    <para>Total paralysis ....................................................................</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>6.</para>
                </entry>
                <entry>
                    <para>Injuries resulting in being permanently bedridden .......</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>7.</para>
                </entry>
                <entry>
                    <para>Paraplegia ..........................................................................</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>8.</para>
                </entry>
                <entry>
                    <para>Any other injury causing permanent total disablement ...</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>9.</para>
                </entry>
                <entry>
                    <para>Loss of arm at shoulder ....................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>75</para>
                </entry>
                <entry>
                    <para>80 (preferred hand)</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>10.</para>
                </entry>
                <entry>
                    <para>Ankylosis of shoulder joint—</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>in optimum position .....................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>35</para>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>in worst position ............................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>55</para>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para>11.</para>
                </entry>
                <entry>
                    <para>Loss of arm between elbow and shoulder .......................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>75</para>
                </entry>
                <entry>
                    <para>80 (preferred hand)</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>12.</para>
                </entry>
                <entry>
                    <para>Loss of arm at elbow ..........................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>75</para>
                </entry>
                <entry>
                    <para>80 (preferred hand)</para>
                </entry>
            </row>
            <row>
                <entry>
                    <para>13.</para>
                </entry>
                <entry>
                    <para>Ankylosis of the elbow joint—</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>in optimum position .....................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>30</para>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>in worst position ............................................................</para>
                </entry>
                <entry>
                    <para/>
                </entry>
                <entry>
                    <para>50</para>
                </entry>
                <entry>
                    <para/>
                </entry>
            </row>
            <row>
                <entry>
                    <para>14.</para>
                </entry>
            </row>
        </tbody>
    </tgroup>
</table>

这里我要创建一个表,如下图所示

我知道直接请求代码不是个好主意,我尝试了正常的表(已经完成了),但是我真的不知道如何在xslt中执行cals表。请让我知道如何做这些cals表。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-02 13:42:19

您在注释中说,您正在寻找HTML输出--您开始使用的输入XML具有正确的结构,可以直接转换为具有元素名称1-1映射的HTML表,您只需要将源格式的morerows="n"转换为rowspan="n+1"中的HTML。

代码语言:javascript
复制
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:strip-space elements="*" />
  <xsl:output method="html" indent="yes" />

  <!-- these nodes have the same names in HTML -->
  <xsl:template match="table | thead | tbody">
    <xsl:copy><xsl:apply-templates /></xsl:copy>
  </xsl:template>

  <!-- row becomes tr -->
  <xsl:template match="row">
    <tr><xsl:apply-templates /></tr>
  </xsl:template>

  <!-- entry becomes td -->
  <xsl:template match="entry">
    <td><xsl:apply-templates select="@morerows|node()" /></td>
  </xsl:template>

  <xsl:template match="entry/@morerows">
    <xsl:attribute name="rowspan" select="1 + ." />
  </xsl:template>
</xsl:stylesheet>

我们在这里依赖于没有显式模板的节点的默认模板规则,在元素的情况下递归地处理子元素,在文本节点的情况下输出文本。

您已经标注了XSLT2.0的问题,但为了记录在案,这几乎是XSLT1.0样式表,唯一需要更改的是,xsl:attribute在1.0中不接受select,所以您需要的不是<xsl:attribute name="rowspan" select="..." />,而是<xsl:attribute name="rowspan"><xsl:value-of select="..." /></xsl:attribute>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20327361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档