Ant xslt任务输出到stdout

时间:2011-09-27 20:32:42

标签: ant xslt-2.0

使用< xslt>在ant中的任务,如何将输出生成到stdout?

我的XSLT通过xsl:result-document生成多个文件,正常输出只是我想用普通Ant输出显示的状态信息。 Ant似乎迫使我提供destdir =或out =参数。

Ant 1.8.2 with Saxon 9

2 个答案:

答案 0 :(得分:1)

是的蚂蚁这样做。但是,XSLT具有可用于在stdout上输出的元素:)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="types" match="a" use="text()"/>
<xsl:template match="/">
<result>
  <xsl:message terminate="no">I am a message from xslt!</xsl:message>
</result>
</xsl:template>
</xsl:stylesheet>

输出:

build:
 [xslt] Processing C:\Users\Stefanos\Documents\Visual Studio 2010\Projects\stackOverflow\stackOverflow\test.xml to C:\Users\Stefanos\Documents\Vis
ual Studio 2010\Projects\stackOverflow\stackOverflow\out.xml
 [xslt] Loading stylesheet C:\Users\Stefanos\Documents\Visual Studio 2010\Projects\stackOverflow\stackOverflow\test.xslt
 [xslt] I am a message from xslt!

BUILD SUCCESSFUL
Total time: 0 seconds

希望它有所帮助!

答案 1 :(得分:0)

我最近遇到了类似的情况;带有XSLT任务的Ant脚本,其中样式表转换使用<xsl:result-document>生成多个文件。由于Ant XSLT任务需要destdir属性(除非已指定out属性),因此我使用已知的临时文件作为out目标,然后实现了“清理”删除临时文件的任务。

<target name="removeTemporaryFiles" description="remove temporary files">
    <delete file="${workspace}/temp.xhtml"></delete>
…
</target>