Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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变量内的XSLT循环_Xml_Xslt_Xslt 1.0_Transformation - Fatal编程技术网

Xml XSLT变量内的XSLT循环

Xml XSLT变量内的XSLT循环,xml,xslt,xslt-1.0,transformation,Xml,Xslt,Xslt 1.0,Transformation,我有一个关于XSLT的问题,基本上我有一些转换要做,但最后我希望将我所做的所有转换都放在一个XSLT:变量中 基本上我的意思是这样的,当然xslt会更复杂,但为了说明我的意思,下面是: <xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/2001/XMLSchema"> <xsl:output method="html" indent="no"/&g

我有一个关于XSLT的问题,基本上我有一些转换要做,但最后我希望将我所做的所有转换都放在一个XSLT:变量中

基本上我的意思是这样的,当然xslt会更复杂,但为了说明我的意思,下面是:

<xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="html" indent="no"/>
    <xsl:decimal-format NaN=""/>
    <xsl:template match="/">
        <xsl:call-template name="base_template"/>
    </xsl:template>

    <xsl:template name="base_template">
            <!-- This is what i mean -->
            <xsl:variable name="general_variale">

                <xsl:call-template name="template_three" />

                <br />

                <xsl:call-template name="template_two" />

                <br />

                <xsl:call-template name="template_one" />               

            </xsl:variable>
        </xsl:template>

            <xsl:template name="template_three">
            <xsl:for-each select="$Rows">   

                <xsl:variable name="id" select="@ID" />

                <xsl:for-each select="$filteredRows_Releases">
                    <process name="$id">
                        ....
                    </process>
                </xsl:for-each>
            </xsl:for-each>
        </xsl:template>

        <xsl:template name="template_two">
            <xsl:for-each select="$Rows">   

                <xsl:variable name="id" select="@ID" />

                <xsl:for-each select="$filteredRows_Releases">
                    <task name="$id">
                        ....
                    </task>
                </xsl:for-each>
            </xsl:for-each>
        </xsl:template>
</xsl:stylesheet>



.... ....
有了这个xslt,我希望有一个通用的变量如下所示:

<process name="somename">
</process>
...
<task name="somename">
</task>
...

...
...

这是可行还是不可行?

是的,您可以通过这种方式捕获变量中任何处理的结果


但是,在XSLT1.0中,对如何使用结果变量有一些限制:它被称为结果树片段。如果希望以任何有趣的方式处理它,则需要使用exslt:node-set()扩展将其转换为常规文档树。在XSLT2.0中,此限制被删除。

是的,您可以通过这种方式捕获变量中任何处理的结果


但是,在XSLT1.0中,对如何使用结果变量有一些限制:它被称为结果树片段。如果希望以任何有趣的方式处理它,则需要使用exslt:node-set()扩展将其转换为常规文档树。在XSLT2.0中,这一限制被删除。

“……但最后,我希望将我所做的所有转换都放在一个
”中,为什么要这样做?请解释一下,因为从目前的情况来看,这个意图没有多大意义。因为我有xml,我必须将它解析为另一个xml的正确形式,然后将它作为变量(通过参数)传递给一些flash程序,直到没有意义。XSLT变量和Flash变量没有任何共同之处。使用XSLT转换XML,使用宿主语言将转换结果传递给Flash。这是两个独立的步骤,您不能在XSLT中执行此操作。我必须使用正确格式的变量,然后通过XSLT再次创建一些标记,在页面上初始化这些标记,在这些标记中,我应该将属性数据设置为XSLT变量,但做什么并不重要,我只是想确定它是否能用这种方式创建变量“…但最后我想把我所做的所有转换都放在一个
”中,你为什么要这样做?请解释一下,因为从目前的情况来看,这个意图没有多大意义。因为我有xml,我必须将它解析为另一个xml的正确形式,然后将它作为变量(通过参数)传递给一些flash程序,直到没有意义。XSLT变量和Flash变量没有任何共同之处。使用XSLT转换XML,使用宿主语言将转换结果传递给Flash。这是两个独立的步骤,您不能在XSLT中执行此操作。我必须使用正确格式的变量,然后通过XSLT再次创建一些标记,在页面上初始化这些标记,在这些标记中,我应该将属性数据设置为XSLT变量,但做什么并不重要,我只是想确定它是否能用这种方式创建变量