Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何强制XSLT转换遵循文档的顺序?_Xml_Xslt_Msxsl - Fatal编程技术网

Xml 如何强制XSLT转换遵循文档的顺序?

Xml 如何强制XSLT转换遵循文档的顺序?,xml,xslt,msxsl,Xml,Xslt,Msxsl,因此,我正在编写一个XSLT转换来将XML文件解析为HTML。有一段时间,一切都很顺利。然而,我遇到了一个问题。基本上,似乎没有按照我预期的顺序 在转换中,有一些代码如下所示 <xsl:template match="/" <html> <head></head> <body> <h1>Summary</h1> <table> <

因此,我正在编写一个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>

虽然在大多数情况下,这个问题已经过时,但如果有人发现类似的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“确保你的模板在你期望的时候被调用,而不是在其他时间。”