Разделить xml на несколько выходных файлов

Проще говоря, у меня есть XML, который содержит 120 узлов. Как я могу создать 3 XML-файла, каждый из которых содержит 50 узлов? Я отметил вывод как динамический. Тогда я попытался подать заявку auto-number функция, но я не могу получить, когда он срабатывает и как создать условия на нем. Что мне нужно, это sthm как триггер, который будет вызывать создание нового файла. Моя стратегия:

PS Я нуб в MapForce.

1 ответ

Предполагая, что ваш вклад

<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>

На практике вы хотите быть немного умнее, чтобы обрабатывать произвольное количество узлов на входе.

Другие вопросы по тегам