如何从XSLT文件读入多个CSV文件并输出单个XML文件

时间:2012-06-15 13:27:53

标签: c#-4.0 xslt-2.0 saxon

我计划将Saxon用于XSLT问题。我需要按计划运行我的程序。运行时,需要从目录中选择所有CSV文件。文件数可以是随机的,但一旦处理完毕,它们就会被另一个进程从文件夹中清除。最初只有一个具有固定名称的CSV文件,因此在XSLT中引用它不是问题。我还可以在运行时以编程方式设置文件名,这样一切都运行良好。我的XSLT现在需要知道所有文件,所以我可以输出一个XML。我不确定我是否可以传入文件路径并让XSLT读入该位置的所有文件?是否有命令这样做或有更好的方法来做到这一点?请记住,我不知道运行XSLT时文件夹中有多少CSV文件。

1 个答案:

答案 0 :(得分:1)

请参阅www.saxonica.com/documentation/sourcedocs/intro.xml,您可以使用collection功能从目录中读取文件,例如

<xsl:for-each select="collection('file:///C:/dir/subdir?select=*.csv;unparsed=yes')/tokenize(., '\n')">
  <line><xsl:value-of select="."/></line>
</xsl:for-each>