我有一个将XML文件转换为HTML文件的XSL。效果很好。但我想申请一个文件目录。理想情况下,每个XML文件的新HTML文件都将放在同一目录中。
我正在使用Windows XP。我有Cygwin,并且对shell脚本很好。我现在有撒克逊人,但迄今为止还没有取得多少成就。现在我正在做类似
的事情java -jar settings.saxon_path -t -s:sourceFilepathNormal -xsl:normalizePath(myXSLT) -o:newXMLFilepathNormal
在目录中每个文件的for
循环中,但这对我来说似乎很笨拙。实际上,似乎没有这种方式,我知道它笨重。使用手头的工具完成这项任务的最优雅方式是什么?
答案 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 \;