如果我只在表中创建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>
答案 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>