首页 > 解决方案 > 当我的 TR 没有填充任何 TD 或 TH 标签时,为什么我的文本在我的表格内?

问题描述

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

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

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

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

但是,为什么当我使用 XML/XSL 显示一个表格时,就像我在上面显示它的方式一样,数据会自动插入到表格行中,如下图所示

在此处输入图像描述

以下是我的 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>

标签: htmlxmlxslt

解决方案


您缺少 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>


推荐阅读