我有一个XML文件,需要使用XSLT将其转换为HTML表。我尝试遵循w3cschools的示例。在这里键入它太麻烦了,因为它不是英语,但我会尽力解释我的问题:
我有一个根元素“目录”和多个子元素“ cd”。当我在XSLT中编辑表时,我仅获得第一个子节点“ cd”的值。
谁能说出错误在哪里?
答案 0 :(得分:0)
假设您使用的XML如下所示
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
将所有值打印到表中的XSLT如下。重复的<xsl:for-each>
元素的<cd>
循环将产生数据的表格格式。
<xsl:template match="catalog">
<html>
<body>
<table border="1" cellspacing="0" cellpadding="2">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
<th style="text-align:right">Price</th>
<th style="text-align:right">Year</th>
</tr>
<xsl:for-each select="cd">
<tr>
<td style="text-align:left"><xsl:value-of select="title" /></td>
<td style="text-align:left"><xsl:value-of select="artist" /></td>
<td style="text-align:right"><xsl:value-of select="price" /></td>
<td style="text-align:right"><xsl:value-of select="year" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>