3

我有一个包含许多 XML 文件的文件夹,我想要一个简单的 XSLT 转换,可以将所有这些文件合并为一个,并将所有数据放在一个名为<files>...</files>. 我不在乎顺序。

PS 我没有包含所有文件名称的索引文件。我在谷歌上搜索了“XSLT 连接 XML 文件”,但结果总是谈到使用该document()函数并从索引文件中获取文件的名称。我想看看这个问题的解决方案collection(),如果可能的话,请。

4

1 回答 1

7

XSLT 2.0 处理器通常允许使用该函数(从目录/文件夹中提取文件),collection但该函数的参数取决于处理器。使用 Saxon 9,您可以使用

<xsl:param name="folder-url" select="'file:///C:/dir/folder'"/>

<xsl:template name="main">
  <files>
   <xsl:copy-of select="collection(concat($folder-url, '?select=*.xml'))"/>
  </files>
</xsl:template>

有关详细信息,请参阅http://www.saxonica.com/documentation/index.html#!sourcedocs/collections分别查看 XSLT 2.0 处理器的文档。

于 2013-11-10T12:43:58.263 回答