Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 是否可以使用XSLT对目录中的文件进行计数?_Xml_Xslt_Saxon - Fatal编程技术网

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))