Xml 是否可以使用XSLT对目录中的文件进行计数?
我需要一种方法来计算目录中的文件数,并将其存储回一个变量Xml 是否可以使用XSLT对目录中的文件进行计数?,xml,xslt,saxon,Xml,Xslt,Saxon,我需要一种方法来计算目录中的文件数,并将其存储回一个变量 <xsl:variable name="no_of_files" /> 我没有得到任何继续的提示我不知道用纯XSLT实现这一点的方法。但即使有可能,XSLT显然也不适合这项任务 还有其他更适合处理文件系统的语言。或者 预先计算目录中的文件数(使用shell脚本或执行Saxon的语言),并将此信息作为参数传递给XSLT处理器。请参见示例 或 从XSLT中执行外部代码以检索文件计数@Michael-O提出了一种方法
<xsl:variable name="no_of_files" />
我没有得到任何继续的提示我不知道用纯XSLT实现这一点的方法。但即使有可能,XSLT显然也不适合这项任务 还有其他更适合处理文件系统的语言。或者
- 预先计算目录中的文件数(使用shell脚本或执行Saxon的语言),并将此信息作为参数传递给XSLT处理器。请参见示例
- 从XSLT中执行外部代码以检索文件计数@Michael-O提出了一种方法
另一方面,了解为什么首先需要文件计数可能会很有趣。通常,如果您描述您的答案,答案会更有用。您可以使用Saxon 9统计目录中的所有XML文档,例如,
count(collection()file:///C:/dir/subdir?select=*.xml'))
,请参阅。但是文件必须是格式良好的XML文档,才能正常工作,并将被加载和解析。另一种解决方案是使用EXPath文件扩展名,它不需要花费读取和解析目录中的所有文件的费用,也包括非XML文件。这是在Saxon 9.5 PE中实现的
看
是否要从样式表中执行此操作?你可以试试。
count(file:list($fir, $recursive))