您可以使用Ant来构建/修改XML文件吗?

时间:2010-06-17 18:59:03

标签: java xml ant

我对蚂蚁很新,一直在看这些任务。我正在尝试生成一个xml文件。我是否需要调用外部进程或者是否有某种方法可以执行此操作?它可以像将字符串发送到txt文件并将其另存为.xml一样简单。有可能吗?

4 个答案:

答案 0 :(得分:10)

如果您必须在蚂蚁工作流程中处理任何类型的XML处理,强烈建议使用xmltask。非常详细的文档和良好的支持。除此之外你需要的只是XPATH knowledge。这里=> another helpful article

答案 1 :(得分:6)

正确的答案取决于你实际上要做的事情。

您可以使用echo任务和参数替换来创建一个小的xml文档,但这很难很快维护。

如果您的目标是生成一个主要是样板的XML文档,并替换了几个值,那么您应该查看创建模板文档然后使用Copy with filtering任务。

如果您需要根据Ant中的数据(或从其他地方收集)修改文档的结构,那么使用xslt任务将更适合。 XSLT的问题在于它并不总是直接使用(XSLT使用函数式编程,而不是过程式编程)。

您可能会发现正确的答案是write your own Ant task,它会按照您想要的方式完全按照您的意愿行事。

如果你能更好地描述你想要达到的目标,我相信有人会乐意提供更准确的答案。

答案 2 :(得分:5)

您可以使用Replace任务替换模板中的给定字符串,并将其另存为xml。 一个简单的例子,如ant文档中所示:

<replace file="${src}/index.html" token="@@@" value="wombat"/>

我用它来替换java项目中实际构建标识符的常量@version@

如果您想进行更复杂的处理,您应该查看XSLT任务。例如,要生成文档,在输出中使用date替换,您可以使用以下内容:

<xslt basedir="doc" destdir="build/doc"
      extension=".html" style="style/apache.xsl">
  <param name="date" expression="07-01-2000"/>
</xslt>

答案 3 :(得分:1)

你可以做到这一点,虽然在我看来你更喜欢事先想要编写的东西,或者你可以从Ant调用的东西。

任务将是:

<echo file="my.xml"><!--put escaped xml here--></echo>

这当然会很繁琐,因为一切都必须逃脱,但你可以做到。