首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cals表中的属性是什么?

Cals表中的属性是什么?
EN

Stack Overflow用户
提问于 2014-05-21 11:29:52
回答 1查看 323关注 0票数 0

我在CALS桌子上工作,被困在了一个台阶上。我有下面的桌子。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<table frame="all">
<tgroup cols="2">
<colspec colnum="1" colname="col1" colwidth="2*"/>
<colspec colnum="2" colname="col2" colwidth="16*"/>
<tbody>
<row>
<entry align="center" valign="top" colname="col1" colsep="1" rowsep="1"><para><content-style font-style="bold">A</content-style></para></entry>
<entry align="left" valign="top" colname="col2" colsep="1" rowsep="1"><para><content-style font-style="bold">Board Matters</content-style></para></entry>
</row>
<row>
<entry align="center" valign="top" colname="col1" colsep="1" rowsep="1"><para></para></entry>
<entry align="left" valign="top" colname="col2" colsep="1" rowsep="1"><para></para></entry>
</row>
<row>
<entry align="center" valign="top" colname="col1" colsep="1" rowsep="1"><para><content-style font-style="bold">2</content-style></para></entry>
<entry align="left" valign="top" colname="col2" colsep="1" rowsep="1"><para><content-style font-style="bold">Board composition and balance</content-style> <content-style font-style="bolditalic">(strong and independent board with no dominant</content-style><content-style font-style="bolditalic" format="strikethrough">e</content-style> <content-style font-style="bolditalic">individual(s))</content-style></para></entry>
</row>
</tbody>
</tgroup>
</table>

以及下面的XSLT。

代码语言:javascript
复制
    <xsl:template name="table" match="table">

<xsl:if test="./title/page">
        <xsl:apply-templates select="./title/page"/>
    </xsl:if>    

<div class="figure">
<div class="figure-title">
<xsl:value-of select="./title"/>
</div>
</div>
        <table class="frame-{current()/@frame}">
            <xsl:apply-templates select="child::node()[not(self::title)]"/>
        </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|self::tfoot/*)]" />
    </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:if test="preceding-sibling::tfoot">
       <tfoot class="foot">

            <xsl:apply-templates select="preceding-sibling::tfoot"/>
        </tfoot>
        </xsl:if>

    </xsl:template>
    <xsl:template name="thead" match="tgroup/thead">
        <thead>
            <xsl:for-each select="current()/row">
                <tr>
                    <xsl:for-each select="current()/entry">
                        <xsl:call-template name="headentry" />
                    </xsl:for-each>
                </tr>
            </xsl:for-each>
        </thead>
    </xsl:template>

<xsl:template match="box">
<div class="box">
<div class="title">
<xsl:value-of select="./title"/>
</div>
<xsl:apply-templates select="child::node()[not(self::title)]"/>
</div>
</xsl:template>



    <xsl:template name="colspec" match="colspec">

        <xsl:variable name="b">
            <xsl:value-of select="sum(../colspec/number(substring-before(@colwidth,'*')))"/>
        </xsl:variable>
        <col class="colname-{current()/@colname} colwidth-{concat(format-number( number(substring-before(@colwidth,'*')) div $b * 100,'##'),'%')}" />
    <xsl:text disable-output-escaping="yes"><![CDATA[</col>]]></xsl:text>
    </xsl:template>


    <xsl:template name="row" match="row">
    <xsl:if test="./entry/*/page">
    <xsl:apply-templates select="./entry/*/page"/>
    </xsl:if>
    <xsl:choose>
                    <xsl:when test="parent::tfoot">

                        <tr>
            <xsl:for-each select="current()/entry">
                <xsl:call-template name="entry" />
            </xsl:for-each>
        </tr>

                    </xsl:when>
                    <xsl:otherwise>
<tr>
            <xsl:for-each select="current()/entry">
                <xsl:call-template name="entry" />
            </xsl:for-each>
        </tr>                   
                    </xsl:otherwise>
                </xsl:choose>

    </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}">

                                                <xsl:apply-templates select="child::node()[not(self::page)]"/>
                </td>
            </xsl:when>
            <xsl:when test="@align and ./@morerows">
                <td align="{@align}" rowspan="{number(./@morerows)+1}">
                    <xsl:for-each select="para">
                        <div class="para">
                                                       <xsl:apply-templates select="child::node()[not(self::page)]"/>
                        </div>
                    </xsl:for-each>
                </td>
            </xsl:when>
            <xsl:when test="./@morerows and not(./@align)">
                <td rowspan="{number(./@morerows)+1}">
                    <xsl:for-each select="para">
                        <div class="para">
                                                        <xsl:apply-templates select="child::node()[not(self::page)]"/>
                        </div>
                    </xsl:for-each>
                </td>
            </xsl:when>
            <xsl:when test="not(./@morerows) and ./@align">
                <td align="{@align}">
                    <xsl:for-each select="para">
                        <div class="para">
                            <xsl:apply-templates select="child::node()[not(self::page)]"/>
                        </div>
                    </xsl:for-each>
                </td>
            </xsl:when>
            <xsl:otherwise>
                <td>
                    <xsl:for-each select="para">

                        <div class="para">
                                                        <xsl:apply-templates select="child::node()[not(self::page)]"/>
                        </div>
                    </xsl:for-each>
                </td>
            </xsl:otherwise>
        </xsl:choose>

    </xsl:template>



    <xsl:template name="headentry">
        <xsl:choose>
            <xsl:when test="@align">
                <td class="align-{@align}">
                    <xsl:if test="translate(current()/@namest,'col','') != translate(current()/@nameend,'col','')">
                        <xsl:variable name="colspan">
                            <xsl:value-of select="xs:integer(translate(current()/@nameend,'col','')) - xs:integer(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>
                </td>
            </xsl:when>
            <xsl:otherwise>
                <td>
                    <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>
                </td>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

在这里,当我运行XSLT时,一切都很好,但是下面的XML部分出现了问题。

代码语言:javascript
复制
<row>
    <entry align="center" valign="top" colname="col1" colsep="1" rowsep="1"><para></para></entry>
    <entry align="left" valign="top" colname="col2" colsep="1" rowsep="1"><para></para></entry>
    </row>

在输出中,我需要一个空行,并且正在生成它,但是它看起来更像是彼此之间没有间隙的两行。如下所示。

但实际上,我需要这些线之间的一些空白,如下所示。

请告诉我如何做到这一点,我想知道如何利用我的XSLT中的colseprowsep

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 11:55:52

在空的para中添加一个不间断的空间作为内容。更像是

代码语言:javascript
复制
<row>
    <entry align="center" valign="top" colname="col1" colsep="1" rowsep="1"><para>&#x00A0;</para></entry>
    <entry align="left" valign="top" colname="col2" colsep="1" rowsep="1"><para>&#x00A0;</para></entry>
</row>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23781914

复制
相关文章

相似问题

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