我对以下内容有点困惑。我有大约200-xml文件,我想将所有文件合并为1个文件。所有200个文件都在不同的文件夹中(200个文件夹;))。结构如下:
\文件\工作\ folder1.xml1
\文件\工作\ folder2.xml2
...
\文件\工作\ folder200.xml200
我有xsl将所有文件合并到一个文件中,但.xml文件需要在同一个文件夹中,这需要很多工作。我的问题是,如何使xsl工作,以便它读取所有文件夹并组合所有xml文件或如何获取所有xml文件并将它们放在同一个文件夹中。
我使用的xsl是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:copy>
<xsl:apply-templates mode="rootcopy"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node()" mode="rootcopy">
<xsl:copy>
<xsl:variable name="folderURI" select="resolve-uri('.',base-uri())"/>
<xsl:for-each select="collection(concat($folderURI, '?select=*.xml;recurse=yes'))/*/node()">
<xsl:apply-templates mode="copy" select="."/>
</xsl:for-each>
</xsl:copy>
</xsl:template>
<xsl:template match="node()|@*" mode="copy">
<xsl:copy>
<xsl:apply-templates mode="copy" select="@*"/>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*"/>
</xsl:stylesheet>
亲切的问候,
ASB