Xslt Saxon处理器 - 目录中的所有文件

时间:2016-09-02 11:15:38

标签: java xml batch-file xslt saxon

我运行了这个批处理文件,它处理/ input目录中的xml文件。

java  -jar c:/SaxonHE9-6-0-6J/saxon9he.jar -s:D:/hdbook-Convertor/input/  -xsl:C:\Automation\hdbook-convertor.xml  -o:D:\hdbook-Convertor\output -xmlversion:1.0

我希望能够处理子目录及其中的文件,结构为enter image description here

然后将所有已处理的文件移动到输出文件夹。我不知道如何让-s:D:/hdbook-Convertor/input/遍历所有子目录?

2 个答案:

答案 0 :(得分:1)

尝试在转换本身中使用collection()函数:

<xsl:template name="main">
  <xsl:for-each select="collection('file:///D:/hdbook-Convertor/input/?recurse=yes;select=*.xml')">
    <xsl:result-document href="output/{tokenize(document-uri(.), '/')[last()]">
      <xsl:apply-templates/>
    </xsl:result-document>
  </xsl:for-each>
</xsl:template>

答案 1 :(得分:0)

试试这个(未经测试的)

for /f "delims=" %%f in ('dir /b /s /ad D:\hdbook-Convertor\input') do echo java -jar c:/SaxonHE9-6-0-6J/saxon9he.jar -s:"%%~dpf" -xsl:C:\Automation\hdbook-convertor.xml -o:D:\hdbook-Convertor\output -xmlversion:1.0

如果命令看起来正常并且运行良好(手动尝试其中几个),请删除&#34; echo&#34;用于实际批量执行。