使用 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,它的速度足以满足我的需求。)
所以我有一个 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,它的速度足以满足我的需求。)