所以我正在编写一个 XSLT 转换来将 XML 文件解析为 HTML。有一段时间,一切都很顺利。但是,我遇到了一个问题。基本上,似乎没有遵循我期望的顺序。
在转换中有一些看起来像这样的代码。
<xsl:template match="/"
<html>
<head></head>
<body>
<h1>Summary</h1>
<table>
<xsl:apply-templates select="theItem"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="theItem"/>
<tr><td>Column1</td><td>Column2</td></tr>
</xsl:template>
我期望做的是建立一个表格,并为模板的每个匹配项填写一行。
它所做的是打开和关闭表格,然后将所有行放在后面。像这样的东西。
<table></table>
<tr>
<td>
Column1
</td>
<td>
Column2
</td>
</tr>
<tr>
<td>
Column1
</td>
<td>
Column2
</td>
</tr>
那么到底发生了什么?我不确定这是否重要,但我使用 msxsl 进行转换。我还尝试将转换嵌入数据中并在 IE 中打开它。创建相同的问题。我看不出这将是预期的行为,但也许我缺少一些东西。
编辑
请注意,我可以将模板应用程序包装在任意数量的任意类型的标签中,并且它们都会在显示任何模板信息之前打开和关闭。