无需等待在 1.8.2 中修复此问题,然后等待所有人最终升级到 1.8.2,您可以推出自己的 XSLT 宏(适用于您明确想要使用 Saxon,而不是用户选择的 XSLT 引擎的情况)
<macrodef name="xslt" uri="com.mycompany.mydepartment">
<attribute name="in" />
<attribute name="out" />
<attribute name="style" />
<attribute name="classpath" default="${saxon.jar.path}" />
<attribute name="taskname" default="mydep:xslt" />
<element name="params" optional="true" implicit="true" />
<sequential>
<java classname="net.sf.saxon.Transform"
classpath="@{classpath}"
taskname="@{taskname}">
<classpath path="${saxon.jar.path}" />
<arg value="-s:@{in}" />
<arg value="-xsl:@{style}" />
<arg value="-o:@{out}" />
<params />
</java>
</sequential>
</macrodef>
然后你可以调用它(假设 xmlns:mydep="com.mycompany.mydepartment" 在项目元素上设置)
<mydep:xslt in="${myinput}"
out="${myoutput}"
style="${myxslt}">
<arg value="param1=value1" />
<arg value="param2=value2" />
<arg value="+param3=somefile.xml" />
</mydep:xslt>
您可以在http://www.saxonica.com/documentation/using-xsl/commandline.xml找到将参数传递给 Saxon 的文档