Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 对齐表格标题和表格单元格_Xml_Xslt - Fatal编程技术网

Xml 对齐表格标题和表格单元格

Xml 对齐表格标题和表格单元格,xml,xslt,Xml,Xslt,我有以下示例XML: <javancss> <packages> <package id="1"> <name>Package 1</name> <File ID="1"> <classes>3</classes> <functions>21</fu

我有以下示例XML:

<javancss>
    <packages>
        <package id="1">
            <name>Package 1</name>
            <File ID="1">
                <classes>3</classes>
                <functions>21</functions>
                <ncss>283</ncss>
                <javadocs>20</javadocs>
                <javadoc_lines>111</javadoc_lines>
                <single_comment_lines>11</single_comment_lines>
                <multi_comment_lines>221</multi_comment_lines>
            </File>
            <File ID="2">
                <classes>3</classes>
                <functions>21</functions>
                <ncss>285</ncss>
                <javadocs>20</javadocs>
                <javadoc_lines>111</javadoc_lines>
                <single_comment_lines>11</single_comment_lines>
                <multi_comment_lines>222</multi_comment_lines>
            </File>
        </package>
</packages>

 <objects>
        <object id="1">
            <name>Object 1</name>
            <File ID="1">
                <ncss>253</ncss>
                <functions>17</functions>
                <classes>2</classes>
                <javadocs>20</javadocs>
            </File>
            <File ID="2">
                <ncss>255</ncss>
                <functions>17</functions>
                <classes>2</classes>
                <javadocs>20</javadocs>
            </File>
        </object>
<objects>

<functions>
 <function id="10">
            <name>Function 1</name>
            <File ID="1">
                <ncss>61</ncss>
                <ccn>29</ccn>
                <javadocs>1</javadocs>
            </File>
            <File ID="2">
                <ncss>61</ncss>
                <ccn>29</ccn>
                <javadocs>1</javadocs>
            </File>
        </function>
</functions>
</javancss>

包1
3.
21
283
20
111
11
221
3.
21
285
20
111
11
222
对象1
253
17
2.
20
255
17
2.
20
职能1
61
29
1.
61
29
1.
并使用以下XSLT将其转换为HTML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>

<head>
</head>

<body>

<center>  <h2>Package Summary</h2> </center>

<table border="1" >

  <tr>
    <th  > ID</th>
    <th  > Name</th>
    <th width="20"  >File</th>
    <th width="46"  >Classes</th>
    <th width="58"  >Functions</th>
    <th width="60"  >NCSS</th>
    <th width="82"  >Javadocs</th>
    <th width="130"  >Javadoc Lines </th>
    <th width="199"  >Single Comment Lines </th>
    <th width="126"  >Multi Comment Lines </th>
  </tr>

  <xsl:for-each select="/javancss/packages/package">

<tr>
    <td  > <xsl:value-of select="@id" /> </td>
    <td align="left" > <xsl:value-of select="name" /></td>
    <td  colspan="8"><td />
<table border="1">

    <xsl:for-each select="File">
<tr >
            <td width="20"  > <a href="#FileList"><xsl:value-of select="@ID" /> </a></td>
        <td width="46"  > <xsl:value-of select="classes" /></td>
            <td width="58"  > <xsl:value-of select="functions" /> </td>
            <td width="60"  ><xsl:value-of select="ncss" />      </td>
            <td width="82"  ><xsl:value-of select="javadocs" /></td>
            <td width="130"  ><xsl:value-of select="javadoc_lines" /> </td>
            <td width="199"  ><xsl:value-of select="single_comment_lines" /> </td>
            <td width="126"  ><xsl:value-of select="multi_comment_lines" /> </td>
    </tr></xsl:for-each>
    </table></td>
  </tr>
</xsl:for-each>
</table>

<center>  <h2>Object Summary</h2> </center>

<table border="1" >

  <tr>
    <th  > ID</th>
    <th  > Name</th>
    <th width="20"  >File</th>
    <th width="46"  >Classes</th>
    <th width="58"  >Functions</th>
    <th width="60"  >NCSS</th>
    <th width="82"  >Javadocs</th>
  </tr>

  <xsl:for-each select="/javancss/objects/object">

<tr>
    <td  > <xsl:value-of select="@id" /> </td>
    <td align="left" > <xsl:value-of select="name" /></td>
    <td  colspan="8"><table border="1">
    <xsl:for-each select="File">
<tr>
            <td width="20"  ><a href="#FileList"><xsl:value-of select="@ID" /> </a></td>
        <td width="46"  > <xsl:value-of select="classes" /></td>
            <td width="58"  > <xsl:value-of select="functions" /> </td>
            <td width="60"  ><xsl:value-of select="ncss" />      </td>
            <td width="82"  ><xsl:value-of select="javadocs" /></td>
    </tr></xsl:for-each>
    </table></td>
  </tr>
</xsl:for-each>
</table>

<center>  <h2>Functions Summary</h2> </center>

<table border="1">

  <tr>
    <th  > ID</th>
    <th  > Name</th>
    <th width="20"  >File</th>
    <th width="46"  >CCN</th>
    <th width="60"  >NCSS</th>
    <th width="82"  >Javadocs</th>
  </tr>

  <xsl:for-each select="/javancss/functions/function">

<tr>
    <td  > <xsl:value-of select="@id" /> </td>
    <td align="left" > <xsl:value-of select="name" /></td>
    <td  colspan="8"><table border="1">
    <xsl:for-each select="File"><tr>
            <td width="20"  ><a href="#FileList"><xsl:value-of select="@ID" /> </a></td>
        <td width="46"  > <xsl:value-of select="ccn" /></td>
            <td width="60"  ><xsl:value-of select="ncss" />      </td>
            <td width="82"  ><xsl:value-of select="javadocs" /></td>
    </tr></xsl:for-each>
    </table></td>
  </tr>
</xsl:for-each>
</table>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

包摘要
身份证件
名称
文件
班级
功能
网络控制系统
Javadocs
Javadoc行
单注释行
多注释行
对象摘要
身份证件
名称
文件
班级
功能
网络控制系统
Javadocs
职能摘要
身份证件
名称
文件
CCN
网络控制系统
Javadocs
我无法将表格标题和单元格对齐在一起。我想知道如何去做,如果可能的话,如何使这种行为与所有浏览器交叉兼容


所有帮助都将不胜感激

您不应该为此使用表中的表。尝试使用行span
例如,对于第一个表(包摘要),请尝试以下操作:

<center>
    <h2>Package Summary</h2>
</center>

<table border="1" >

    <tr>
        <th  > ID</th>
        <th  > Name</th>
        <th width="20"  >File</th>
        <th width="46"  >Classes</th>
        <th width="58"  >Functions</th>
        <th width="60"  >NCSS</th>
        <th width="82"  >Javadocs</th>
        <th width="130"  >Javadoc Lines </th>
        <th width="199"  >Single Comment Lines </th>
        <th width="126"  >Multi Comment Lines </th>
    </tr>

    <xsl:for-each select="/javancss/packages/package">
        <xsl:variable name="filescnt" select="count(File)" />
        <xsl:for-each select="File">
            <tr>
                <xsl:if test="position() =1" >
                    <td  rowspan="{$filescnt}">
                        <xsl:value-of select="../@id" />
                    </td>

                    <td align="left"  rowspan="{$filescnt}">
                        <xsl:value-of select="../name" />
                    </td>
                </xsl:if>
                <td width="20"  >
                    <a href="#FileList">
                        <xsl:value-of select="@ID" />
                    </a>
                </td>
                <td width="46"  >
                    <xsl:value-of select="classes" />
                </td>
                <td width="58"  >
                    <xsl:value-of select="functions" />
                </td>
                <td width="60"  >
                    <xsl:value-of select="ncss" />
                </td>
                <td width="82"  >
                    <xsl:value-of select="javadocs" />
                </td>
                <td width="130"  >
                    <xsl:value-of select="javadoc_lines" />
                </td>
                <td width="199"  >
                    <xsl:value-of select="single_comment_lines" />
                </td>
                <td width="126"  >
                    <xsl:value-of select="multi_comment_lines" />
                </td>

            </tr>
        </xsl:for-each>
    </xsl:for-each>
</table>

包摘要
身份证件
名称
文件
班级
功能
网络控制系统
Javadocs
Javadoc行
单注释行
多注释行