将xml拆分为多个输出文件

时间:2013-05-16 11:53:13

标签: xslt altova map-force

简单地说,我有xml包含120个节点。如何创建每个包含50个节点的3个xml文件?我已将输出标记为动态。然后我尝试应用auto-number函数,但是当它触发时我无法获取它以及如何在其上创建条件。我需要的是像触发器那样会导致创建新文件。我的策略:

enter image description here

P.S。我是MapForce的诺布。

1 个答案:

答案 0 :(得分:0)

假设您的输入是

<root>
    <elt>...</elt>
    ...
</root>

然后简单地说,你可以做类似的事情:

<xsl:template match="/">

    <xsl:document href="1-50.xml">
        <root>
            <xsl:for-each select="root/elt[pos() &lt;= 50]">
                <xsl:copy-of select="."/>
            </xsl:for-each>
        </root>
    </xsl:document>

    <xsl:document href="51-100.xml">
        <root>
            <xsl:for-each select="root/elt[pos() >= 51 and pos() &lt;= 100]">
                <xsl:copy-of select="."/>
            </xsl:for-each>
        </root>
    </xsl:document>

    <!-- repeat for other portions of input -->
</xsl:template>

在实践中,您希望在输入中处理任意数量的节点时更聪明一些。