将XML转换为HTML表时,XSLT代码返回空行
我正在尝试使用XSLT1.0将XML文档转换为HTML。我的目标是在HTML表中显示XML行。但是我的XSLT代码返回HTML表中的空行。我的XML是这样的:将XML转换为HTML表时,XSLT代码返回空行,html,xml,xslt,xslt-1.0,Html,Xml,Xslt,Xslt 1.0,我正在尝试使用XSLT1.0将XML文档转换为HTML。我的目标是在HTML表中显示XML行。但是我的XSLT代码返回HTML表中的空行。我的XML是这样的: <?xml version="1.0" encoding="UTF-8"?> <people> <person id="ABCDE1234" firstname="John" lastname="Lewis" sex="male"/> <person id="XYZWU6789"
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person id="ABCDE1234" firstname="John" lastname="Lewis" sex="male"/>
<person id="XYZWU6789" firstname="Marie" lastname="Claire" sex="female"/>
</people>
以下是我的XSLT代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>XML to HTML using XSLT</title>
</head>
<body>
<table border="1" >
<tr>
<th>id</th>
<th>firstname</th>
<th>lastname</th>
<th>sex</th>
</tr>
<xsl:for-each select="people/person">
<tr>
<td><xsl:value-of select="id"/></td>
<td><xsl:value-of select="firstname"/></td>
<td><xsl:value-of select="lastname"/></td>
<td><xsl:value-of select="sex"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
使用XSLT将XML转换为HTML
身份证件
名字
姓氏
性别
但是,当我按如下方式重新格式化XML文件时,XSLT代码运行正常:
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person>
<id>ABCDE1234</id>
<firstname>John</firstname>
<lastname>Lewis</lastname>
<sex>Male</sex>
</person>
<person>
<id>XYZWU6789</id>
<firstname>Mary</firstname>
<lastname>Claire</lastname>
<sex>Female</sex>
</person>
</people>
ABCDE1234
约翰
刘易斯
男性的
XYZWU6789
玛丽
克莱尔
女的
为什么会这样?有什么想法吗?只需添加
@
符号,这样值就可以识别为属性
<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="@firstname"/></td>
<td><xsl:value-of select="@lastname"/></td>
<td><xsl:value-of select="@sex"/></td>
有效。谢谢:)