2011-06-24 43 views
0

我使用任務來爲列表中的所有值(從一個屬性獲取)運行目標。將多個ANT屬性(來自文件)轉換爲一個屬性

<foreach list="val1,val2" delimiter="," target="my.target" param="param_name"/> 

現在,我想把這些值放到單獨的屬性文件中,因爲它們中有很多。

所以問題是:如何從文件中將多個(不知道有多少)屬性(實際上是文件中的行)讀入一個屬性?

屬性文件應該是這樣的:

val1 
val2 
anothervalue 
foobar 

和輸出應該是:

"val1,val2,anothervalue,foobar" 

放在一個屬性。

回答

2

您可以使用LineTokenizer過濾器和loadfile來實現此目的。例如:

<target name="t"> 
    <loadfile property="data_range" srcFile="ls.txt"> 
     <filterchain> <!-- this filter outputs lines delimited by "," --> 
      <tokenfilter delimoutput=","/> 
     </filterchain> 
    </loadfile> 
    <foreach list="${data_range}" param="line" delimiter="," target="print" /> 
</target> 

<target name="print"> 
    <echo>line [${line}]</echo> <!-- you can do anything here --> 
</target> 
+0

爲了完全符合屬性行語法應使用 「<評論值=」 # 「/>」 內部標籤省略 「#」 開始行。 –