将一个xslt样式表递归地应用于子文件夹

时间:2014-05-19 15:36:41

标签: xslt

我有一个像这样的目录结构:

-TopFolder
 --ChildFolder1/file.xml
 --ChildFolder2/file.xml
 --ChildFolder3/file.xml

我想浏览每个子文件夹,将我的xslt样式表应用于file.xml,然后输出" file.html"在每个文件夹中。我看过集合()和其他一些东西,但我不太确定采取哪种方法。这可以用XSLT 2.0吗?

干杯

1 个答案:

答案 0 :(得分:0)

使用Saxon,您可以将此模板规则添加到样式表中:

<xsl:template name="main">
  <xsl:for-each select="collection('.?select=*.xml;recurse=yes')">
    <xsl:result-document href="out/{tokenize(document-uri(.), '/')[last()]">
      <xsl:apply-templates select="."/>
    </xsl:result-document>
  </xsl:for-each>
</xsl:template>

然后调用它提供-it:main而不是源文档。当然,您可能希望调整提供输入和输出目录的方式。