为什么我的TR中没有装满TD或TH标签,为什么我的文本在表格内?

时间:2019-02-05 14:20:51

标签: html xml xslt

如果我只在表中创建tr标记,并且在其中输入文本而在其中没有任何TD / TH标记,则这些文本将出现在表外部,如下面的示例代码所示。您还可以运行代码片段以了解我的意思。

<!DOCTYPE html>
<html>
<table border="1">

<tr>
data1
</tr>
<tr>
data2
</tr>
<tr>
data3
</tr>

</table></body>
</html>

但是,为什么当我使用XML / XSL完全按照上面的显示方式显示表时,数据会自动插入表行,如下图所示

enter image description here

下面是我的XML和XSL代码:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>

<test123 >
 <person >
 <firstName>John</firstName>
 <lastName>Smith</lastName>
 <mobile>0211223344</mobile>
 </person>
 <person>
 <firstName>Mary</firstName>
 <lastName>Jane</lastName>
 <mobile>0244556677</mobile>
 </person>
</test123>

XSL:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
 <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
 <xsl:template match="/test123">
 <html>

<body>


<table border="1" >
  <xsl:for-each select="person">

<tr>
  <xsl:value-of select="firstName" />
</tr>

  </xsl:for-each>

</table>

  </body>

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

1 个答案:

答案 0 :(得分:0)

您缺少td | th来生成表的单元格,因此必须将数据放置在td或td元素内才能在单元格中正确放置数据。运行摘要以供参考:

同样,您可以通过更新每个部分来编辑XSLT代码,请参见以下代码供您参考:

<xsl:for-each select="person">
            <tr>
                <td>
                    <xsl:value-of select="firstName" />
                </td>
            </tr>
 </xsl:for-each>

<!DOCTYPE html>
<html>
<table border="1">
    <tr>
        <td>data1</td>
    </tr>
    <tr>
        <td>data2</td>
    </tr>
    <tr>
        <td>data3</td>
    </tr>
</table>
</body>
</html>