是否可以使用XSLT计算目录中的文件?

时间:2014-03-04 08:36:16

标签: xml xslt saxon

我需要一种方法来计算目录中的文件数量并将其存储回变量。

<xsl:variable name="no_of_files" />

我没有得到任何提示

3 个答案:

答案 0 :(得分:2)

另一种解决方案是使用EXPath文件扩展名,该解决方案不涉及读取和解析目录中的所有文件以及包含非XML文件的费用。这是在Saxon 9.5 PE中实现的。

请参阅http://expath.org/spec/file

count(file:list($fir, $recursive))

答案 1 :(得分:1)

您可以使用Saxon 9执行以下操作来计算目录中的所有XML文档。 count(collection('file:///C:/dir/subdir?select=*.xml')),请参阅http://www.saxonica.com/documentation/index.html#!sourcedocs/collections。但是文件需要是格式良好的XML文档才能工作,并且将被加载和解析。

答案 2 :(得分:0)

我不知道在纯XSLT中实现这一目标的方法。但即使有可能 - XSLT显然不适合完成任务。

还有其他语言更容易处理文件系统。任

  • 预先计算目录中的文件(使用shell脚本或使用执行Saxon的语言),并将此信息作为参数传递给XSLT处理器。例如,请参阅Saxon documentation

  • 从XSLT中执行外部代码以检索文件计数。 @ Michael-O建议采用一种方法来处理here

另一方面,了解为什么首先需要文件计数可能会很有趣。通常,如果您描述了problem rather than your attempted solution,则答案会更有帮助。