これは以前に尋ねられたかもしれませんが、個別のファイルに分割する必要があるXMLファイルがあります。XMLファイルを複数に分割します
<?xml version="1.0" encoding="UTF-8"?>
<invoices>
<invoice>
<data>
</data>
</invoice>
<invoice>
<data>
</data>
</invoice>
</invoices>
そして、私はこのように分割する私のコードがあります:
ファイルがある
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" exclude-result-prefixes="xsl">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="yes"/>
<xsl:template match="/">
<tosplit>
<xsl:for-each-group select="//invoice" group-by="ceiling(position() div 1)">
<xsl:apply-templates select="/" mode="copy">
<xsl:with-param name="currentgroup" select="current-group()"/>
</xsl:apply-templates>
</xsl:for-each-group>
</tosplit>
</xsl:template>
<xsl:template match="@*|node()" mode="copy">
<xsl:param name="currentgroup"/>
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="copy">
<xsl:with-param name="currentgroup" select="current-group()"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="invoices" mode="copy">
<xsl:param name="currentgroup"/>
<xsl:copy>
<xsl:apply-templates select="@*" mode="copy"/>
<xsl:apply-templates select="$currentgroup" mode="copy"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
これを、しかし、トリックを行いません。私は各ファイルを見たいと思っています
<?xml version="1.0" encoding="UTF-8"?>
<tosplit>
<invoices>
<invoice>
<data>
</data>
</invoice>
</invoices>
</tosplit>
助けていただければ幸いです。
['xsl:result-document'](https://www.w3.org/TR/xslt20/#creating-result-trees)について学んでください。 –