Java XSLT收集数据

Java XSLT收集数据,java,xml,xslt,xpath,Java,Xml,Xslt,Xpath,我有一个简单的问题,我真的找不到解决办法,我需要你的帮助 主要问题是,在处理输入XML时,我需要在不同的地方“收集”信息。这意味着我真正需要做的就是调用一个特殊的模板,其参数如下: <xsl:template name="append-section"> <xsl:param name="id" /> <xsl:param name="title" /> <!-- more code here -->

我有一个简单的问题,我真的找不到解决办法,我需要你的帮助

主要问题是,在处理输入XML时,我需要在不同的地方“收集”信息。这意味着我真正需要做的就是调用一个特殊的模板,其参数如下:

<xsl:template name="append-section">
        <xsl:param name="id" />
        <xsl:param name="title" />
        <!-- more code here -->
</xsl:template>
这个解决方案似乎也是无效的

所以我的问题是:我如何实现这个简单的问题?从各个地方收集数据,并在转换结束时将其写入文件


我使用Saxon。

您需要根据输出的结构而不是输入的结构来构造代码。当你在输入中遇到信息时,不要试图去做一些事情;当您需要生成输出的相关部分时,请执行这些操作


在某些情况下,这似乎效率低下,因为这意味着要多次访问同一输入。通常,这些低效率将被证明是明显的,而不是真实的。但首先要做的是让这种转变发挥作用;如果速度不够快,您可以再问我们一个问题。

告诉我们输入XML的外观,然后向我们显示您要构造或收集的相应HTML,然后我们可以建议使用XSLT方法。您可能只想在模板上使用某种模式来收集信息,然后如果您需要在一个样式表中执行不同的处理步骤,则使用另一种模式进行其他处理。我很确定这是不可能的,或者至少是很难实现的,我希望有人能提出一个通用的解决方案,其他人可能会觉得这很有帮助,一定有办法做到这一点。如果你能给我们展示一个具体的场景,也许我们可以为它提出一个通用的解决方案。在睡了个好觉之后,我实际上重新考虑了这个问题,并找到了一个有点简单的解决方案,多亏了你的想法。再次感谢Micheal!
<xsl:template name="append-section">
        <xsl:param name="id" />
        <xsl:param name="title" />
        <xsl:result-document method="html" href="tmp/tmp.html">

            <xsl:value-of select="document(tmp.html)" />
            <xsl:element name="li">
                <xsl:element name="a">
                    <xsl:attribute name="class">
                        <xsl:value-of select="'so-dropdown-page-menu-list-button'" />
                    </xsl:attribute>
                    <xsl:attribute name="href">
                        <xsl:value-of select="'#'" />
                        <xsl:value-of select="$id" />
                    </xsl:attribute>
                    <xsl:value-of select="$title" />
                </xsl:element>
            </xsl:element>
        </xsl:result-document>
    </xsl:template>
Cannot write more than one result document to the same URI