XSLTC重定向:write file =不尊重Ant任务destdir属性

时间:2014-03-05 16:55:01

标签: java xslt ant xalan xsltc

我有一个Ant xslt任务,如下所示:

<xslt 
     basedir="${target.dir}"
     destdir="${target.dir}"
     style="${target.dir}/event.xsl"
     includes="*.xml"
     excludes="*Common.xml"
     extension=".tmp.log"
     force="yes"
     >
</xslt>

在event.xsl中我有一个指令:

<xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:redirect="http://xml.apache.org/xalan/redirect"
            xmlns:java="java"
            extension-element-prefixes="redirect"
            >

[other stuff to set $filename]

<redirect:write select="$filename">

对于Xalan-J,这完全符合预期,生成的文件写入 destdir

我正在尝试删除Xalan-J依赖项以在Java 1.4+中使用默认的XSLTC。在此上下文中,XSLTC不尊重选择。相反,建议是将其替换为:

<redirect:write file="{$filename}"

这是正常的,除了将文件写入当前工作目录而不是 destdir .tmp.log 文件正确地以 destdir 结尾。

任何人都知道XSLTC的重定向:写会忽略 destdir 的原因?以及如何解决它?

有一些解决方法,比如为该目录创建build.xml并使用Ant任务“ant”以destdir作为工作目录进行调用。或者我可以在Ant中将有效的chdir分叉到类似的结尾。但是,如果在Xalan-J下,destdir得到了尊重,那么就不需要使用kludge。

0 个答案:

没有答案