У меня есть файл xml в следующем формате:
<?xml version="1.0" encoding="UTF-8"?>
<Feed xmlns="http://www.somecompany.com/xs/PRR/SomeFeed/14.7" encryptionKeyID="ENCRYPTION-KEY-ID-2020-05-01T18:00:17.324Z">
<Interaction>
<EncryptedEmailAddress></EncryptedEmailAddress>
<UserID></UserID>
<UserName></UserName>
<TransactionDate></TransactionDate>
<Locale></Locale>
<DeploymentZone></DeploymentZone>
<Products>
<Product>
<ExternalId></ExternalId>
<Name></Name>
<Price></Price>
<ImageUrl></ImageUrl>
</Product>
<Product>
<ExternalId></ExternalId>
<Name></Name>
<Price></Price>
<ImageUrl></ImageUrl>
</Product>
</Products>
</Interaction>
<Interaction>
<EncryptedEmailAddress></EncryptedEmailAddress>
<UserID></UserID>
<UserName></UserName>
<TransactionDate></TransactionDate>
<Locale></Locale>
<DeploymentZone></DeploymentZone>
<Products>
<Product>
<ExternalId></ExternalId>
<Name></Name>
<Price>37</Price>
<ImageUrl></ImageUrl>
</Product>
</Products>
</Interaction>
</Feed>
Этот канал может иметь миллионы взаимодействий. Я хочу создать преобразование xsl для разделения файлов с использованием 9000 взаимодействий за раз. Мне нужен элемент Feed в каждом разделенном файле.
Я пробовал следующее, но он работает некорректно.
<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/*">
<xsl:for-each-group select="*" group-adjacent="(position()-1) idiv 9000">
<xsl:result-document href="chunk{position()}.xml">
<xsl:copy>
<xsl:copy-of select="."/>
</xsl:copy>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>
</xsl:transform>
Это неправильно группируется и не включает элемент ленты в каждом файле.