使用 Ant 对 XML 文件进行多个 XSLT 转换

Multiple XSLT Transformations on XML File Using Ant

所以我有一个 XML 文件,我需要对其进行 运行 多次转换,以使用 ANT 目标和 saxon9he 转换器创建网页的各个部分。 运行 有很多转换,所以它们被拆分成单独的文件。

到目前为止,我有这个可以很好地用于 1 个转换文件:

<target name="transform">
    <xslt       
    basedir="INPUT/"
    destdir="OUTPUT/
    includes="myfile.xml"
    style="INPUT/XSLT/generateSection1.xsl"
    classpath="saxon9he.jar;"> 

        <factory name="net.sf.saxon.TransformerFactoryImpl" /> 

    </xslt>
</target>

我意识到,为了从这个目标 运行 多个 XSLT 文件,我可以 运行 一个使用 <xsl:import> 导入我需要的所有其他文件的 XSLT 文件,但是我只是想知道是否可以使用 style="Input/XSLT/*.xsl" 之类的东西 运行 特定文件夹中的所有 XSLT 文件,如果可以,这会对性能产生负面影响吗?

您当然可以在 Ant 中执行此操作,但请注意,Ant 管道永远不会超级高效,因为任务始终处理文件而不是内存中的对象。因此,如果多个转换使用同一个文件作为输入,它将被解析多次。从理论上讲,您应该从更面向 XML 工作流程的管道工具中获得更好的性能,例如像 Calabash 这样的 XProc 引擎。 (话虽如此,我一直使用 Ant,它的速度足以满足我的需求。)