多个文件输入?

Jos*_*ush 6 xml xslt io

在XSLT文档中,是否可以循环当前目录中的一组文件?

我有一个情况,我有一个充满xml文件的目录,需要进行一些分析才能生成报告.我的样式表在单个文档上运行很好,但是我想扩展它而不需要另一个工具来合并xml文档.

我在考虑这些问题:

<xsl:for-each select="{IO Selector Here}">
    <xsl:variable select="document(@url)" name="contents" />
    <!--More stuff here-->
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)

Jen*_*niT 8

在XSLT 2.0和Saxon中,您可以使用以下collection()函数执行此操作:

<xsl:for-each select="file:///path/to/directory">
  <!-- process the documents -->
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://www.saxonica.com/documentation/sourcedocs/collections.html.

在XSLT 1.0中,您必须创建一个索引,列出要使用单独工具处理的文档.您的环境可能提供这样的工具; 例如,Cocoon有一个创建这样一个索引的目录生成器.但是不知道你的环境是什么,很难知道推荐什么.