将XSL应用于目录中的所有文件的一般方法?

时间:2011-10-14 02:43:52

标签: html xslt directory cygwin saxon

我有一个将XML文件转换为HTML文件的XSL。效果很好。但我想申请一个文件目录。理想情况下,每个XML文件的新HTML文件都将放在同一目录中。

我正在使用Windows XP。我有Cygwin,并且对shell脚本很好。我现在有撒克逊人,但迄今为止还没有取得多少成就。现在我正在做类似

的事情
java -jar settings.saxon_path -t -s:sourceFilepathNormal -xsl:normalizePath(myXSLT) -o:newXMLFilepathNormal

在目录中每个文件的for循环中,但这对我来说似乎很笨拙。实际上,似乎没有这种方式,我知道它笨重。使用手头的工具完成这项任务的最优雅方式是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用标准XPath 2.0函数 collection() 和XSLT 2.0指令 <xsl:result-document> <在XSLT 2.0 中轻松完成此操作/强>

由于collection()函数仅在W3C规范中表面定义,请阅读 more Saxon-specific bits here

例如,查看我对 this question 的回答。

答案 1 :(得分:1)

您可以按照建议使用collection()函数执行此操作;但Saxon命令行上还有一个工具来处理整个目录。只需将目录名称作为-s参数的值,将另一个目录作为-o参数的值。

如果您更喜欢GUI方法,KernowForSaxon还可以将相同的转换应用于文件夹中的每个文件。

答案 2 :(得分:0)

尝试:

find . -name *.xml -exec java -jar settings.saxon_path -t -s:{} -xsl:normalizePath(myXSLT) -o:{}.html \;