2011-03-01 22 views
1

我有一個xml文件,每個項目在列表中重複一次。 該列表正在螞蟻的屬性文件中設置。如何用ant中的文件名替換xml文件中的令牌?

基於在屬性列表上的文件

modules.list = A,B,C,d

我需要將此: <module [email protected]@ />

<module name="a" \> <module name="b" \>

這是推動我瘋了。我嘗試使用列表中的for,但無法弄清楚如何爲每個列表替換一次令牌。它基本上不僅是一個替代令牌,而且是一個「生成新內容」的東西...... 謝謝你

回答

4

Ant是爲控制構建系統而設計的。你想要做的是生成XML內容,而你可以做到這一點的最佳方式是xsl轉換。

您可以使用ant的xsl轉換任務,並將您的ant參數和xml文件的路徑傳遞給xsl轉換。

<xslt in="input.xml" out="output.xml" 
    style="transformation.xsl"> 
    <param name="modules.list" expression="a,b,c,d"/> 
</xslt> 

在XSLT,你可以很容易地比通過tokenize()函數的字符串分割成一個列表,並通過迭代的for-each元素的項目。在裏面你可以生成你的物品。

希望幫助

我認爲XSL是用於這一目的的工具。

+0

+1對於XSLT推薦 – 2011-03-01 21:06:37

1

我會建議使用一個模板引擎,如Apache速度。雖然您可以使用您的整個ant腳本中的其他工具來觸發生成,但Ant並不適用於您嘗試應用它的任務。

或者您可以使用XSLT,它是一種轉換(而不是模板語言)。如果你已經知道XSLT,那就去吧。否則,我認爲您會發現學習模板引擎比學習XSLT更容易。

相關問題