我有以下代码结构:
XML:
<?xml version="1.0"?>
<?xml-stylesheet href="transform.xsl" type="text/xsl"?>
<javancss>
<date>2013-02-28</date>
<time>16:59:00</time>
<packages>
<package>
<name>Package 1</name>
<classes>3</classes>
<functions>21</functions>
<ncss>283</ncss>
<javadocs>20</javadocs>
<javadoc_lines>111</javadoc_lines>
<single_comment_lines>11</single_comment_lines>
<multi_comment_lines>221</multi_comment_lines>
</package>
<package>
<name>Package 2</name>
<classes>12</classes>
<functions>411</functions>
<ncss>8476</ncss>
<javadocs>380</javadocs>
<javadoc_lines>2193</javadoc_lines>
<single_comment_lines>1224</single_comment_lines>
<multi_comment_lines>6070</multi_comment_lines>
</package>
<package>
</packages>
以下是要应用于文件的XSL转换,以便每个包记录显示在生成的HTML表的一行中
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes"
encoding="iso-8859-1"
media-type="text/html"
doctype-public="-//W3C//DTD HTML 4.0//EN"/>
<xsl:template match="/">
<html>
<body>
<h2>Package List</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Name</th>
<th>Classes</th>
<th>Functions</th>
<th>NCSS</th>
<th>Javadocs</th>
<th>Javadoc Lines</th>
<th>Single Comment Lines</th>
</tr>
<xsl:for-each select="/javancss/packages/package">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="classes"/></td>
<td><xsl:value-of select="functions"/></td>
<td><xsl:value-of select="ncss"/></td>
<td><xsl:value-of select="javadocs"/></td>
<td><xsl:value-of select="javadoc_lines"/></td>
<td><xsl:value-of select="single_comment_lines"/></td>
<td><xsl:value-of select="multi_comment_lines"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我无法在任何浏览器中查看输出。我想知道我哪里出错了。 感谢。
答案 0 :(得分:1)
以下是一些可能不起作用的建议:
1)尝试将xsl:output方法更改为'html'而不是'xml',因为实际上是在输出HTML。
<xsl:output method="html" />
2)确保文件transform.xsl
与XML文件位于同一位置。
3)正如JLRishie在评论中提到的那样,确保您的XML文件格式正确,所有标签都已正确关闭。