Разделить 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() <= 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() <= 100]">
<xsl:copy-of select="."/>
</xsl:for-each>
</root>
</xsl:document>
<!-- repeat for other portions of input -->
</xsl:template>
На практике вы хотите быть немного умнее, чтобы обрабатывать произвольное количество узлов на входе.