2011-12-19 67 views
0

我的問題是,我必須從xml文件讀取複製作業的源路徑,然後將該目錄中的所有文件從xml文件讀取到另一個目錄。從絕對路徑螞蟻複製從xml讀取

由於代碼是話多:

<xmltask source="${projectfile}"> 
    <copy path="Project/RecentResultsInfo/ResultsDirectoryOfRecentLoadTest/text()" property="recentdir" attrValue="true"/> 
</xmltask> 
<copy todir="${targetdirectory}"> 
    <fileset dir="${recentdir}"/> 
</copy> 

運行此目標時,輸出爲: C:\開發\ build.xml文件:44:警告:找不到資源文件「C:\開發\ C:\ Program \ tool \ test_90 \「進行復制。

它看起來在文件集中它不承認,recentdir裏面保存了一個完整的路徑。從應用程序寫入的xml在用路徑讀取的xml文件中的路徑前後有一個換行符。所以螞蟻不會識別路徑,因爲它們前面有一個換行符。

螞蟻有修飾嗎?

任何人都可以幫助我讓螞蟻接受這條路嗎?

回答

1

現在通過使用Ant-Contrib完成它,但是無論如何這都用在了這個項目中。

<xmltask source="${projectfile}"> 
    <copy path="Project/RecentResultsInfo/ResultsDirectoryOfRecentLoadTest/text()" property="recentdirraw" attrValue="true"/> 
</xmltask> 
<!-- replace newlines and whitespace from read path --> 
<propertyregex property="recentdir" input="${recentdirraw}" regexp="^[ \t\n]+|[ \t\n]+$" replace="" casesensitive="false" /> 
<copy todir="${targetdirectory}"> 
    <fileset dir="${recentdir}"/> 
</copy> 

只需用正則表達式修改屬性,通過對空白和換行符進行條帶化來修剪​​文本。

1

據我所見,xmltask中的複製元素提供了trim屬性。

trims leading/trailing spaces when writing to properties 

這是否行得通?