Ant的xslt任务输出到标准输出

3
使用ant中的<xslt>任务,如何使输出生成到标准输出(stdout)?我的XSLT通过xsl:result-document生成多个文件,并且正常输出只是状态信息,我希望它能与正常的Ant输出一起显示。Ant似乎强制我提供一个destdir=或out=参数。Ant 1.8.2使用Saxon 9。
2个回答

1

是的,ant确实可以做到这一点。不过XSLT有一个可以用来在标准输出中获取输出的元素:)

<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

希望能对你有所帮助!


谢谢!这会给我想要的东西。我仍然需要创建一个我不需要的输出文件,但这不是什么大问题。我可以使用out="/dev/null"或out="NUL"来将其丢弃。 - Harold Putman

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接