使用fmpp / ant从单个文件构建单个XML文档

时间:2014-11-25 21:23:57

标签: templates ant fmpp

我正在将许多命令式实用程序移植到apache-ant构建中,并且我在为特定用例提出策略时遇到了一些困难。

我们说我的文件定义如下:

document.xml中

<Document>
  <Page source="page1.xml" />
  <Page source="page2.xml" />
</Document>

page1.xml

<Page title="Page 1">
</Page>

page2.xml

<Page title="Page 2">
</Page>

我想创建一个ant任务,它接受这些文档并将其转换为单个文档,如下所示:

<Document>
  <Page title="Page 1">
  </Page>
  <Page title="Page 2">
  </Page>
</Document>

我决定和fmpp / FreeMaker一起完成这项任务(虽然这不是一个要求,但它似乎很适合我的需要)。

有没有办法在声明式apache-ant任务中定义此转换?

注意:到目前为止,我已经能够运行一个基本的fmpp ant,它针对数据模型呈现一个signle模板文件。我的问题的范围特别涉及从多个不同来源构建文档,以及作为一项任务可能看起来像什么。

干杯,谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

如果document.xml必须是XML(与#include - 其他人的模板相对)......那么它不是一个非常符合FMPP方法的任务,但无论如何,我猜您应该使用FMPP的renderXml处理模式(请参阅http://fmpp.sourceforge.net/settings.html#processingMode)来转换该XML。在渲染器FreeMarker模板中,当您到达Page元素时,可以调用#include按原样插入引用的XML。 (当然,很大程度上取决于你将对这些文件做些什么。)