Xml 如何强制XSLT转换遵循文档的顺序?
因此,我正在编写一个XSLT转换来将XML文件解析为HTML。有一段时间,一切都很顺利。然而,我遇到了一个问题。基本上,似乎没有按照我预期的顺序 在转换中,有一些代码如下所示Xml 如何强制XSLT转换遵循文档的顺序?,xml,xslt,msxsl,Xml,Xslt,Msxsl,因此,我正在编写一个XSLT转换来将XML文件解析为HTML。有一段时间,一切都很顺利。然而,我遇到了一个问题。基本上,似乎没有按照我预期的顺序 在转换中,有一些代码如下所示 <xsl:template match="/" <html> <head></head> <body> <h1>Summary</h1> <table> <
<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>
虽然在大多数情况下,这个问题已经过时,但如果有人发现类似的bug,我想澄清一下这个问题
发生了什么事
<xsl:apply-templates select="theItem"/>
在示例代码中调用时与任何内容都不匹配。所以它没有产生任何效果(正如你所预料的)。然而,在代码的后面,有些东西与
<xsl:template match="theItem"/>
<tr><td>Column1</td><td>Column2</td></tr>
<xsl:template>
第1列第2列
并且插入了所有的行,就像它应该插入的一样。这产生了意想不到的效果
如果有人看到这种行为,那是我首先要看的地方。确保您的模板在您预期的时间实际被调用,而不是在其他时间。这可能会导致模板的应用程序出现问题。感谢所有帮助我找到此解决方案的人。您是否可以显示您的输入XML文档以及复制此问题的完整XSLT样式表?谢谢您的
没有实际应用。稍后将在不同的上下文中应用表行匹配。也许,Iteem
不是你想象的那样?我们需要查看一些xml才能确定。您的模板“Iteem”不应该匹配-它应该有一个名称
,可以从表生成模板中调用。不幸的是,由于文档的长度和性质,我无法完整发布它。幸运的是,尝试为您制作一个合适的样本向我展示了错误的来源!我想这是调试中的一堂好课。那么,这个问题过时了吗?也许你应该自己回答或者删除它。+1“确保你的模板在你期望的时候被调用,而不是在其他时间。”