2010-03-02 131 views
0

我需要用屬性文件加載的正確值替換xml文件中某些正則表達式的所有匹配項。作爲例子Ant正則表達式。讀取匹配表達式的值

  • 在XML文件中我在財產文件< port=${jnpPort}/>
  • port=3333

我想有條目的XML文件中像< port=3333/>

現在使用

<replaceregexp match="\$\{(.*)\}" replace="${\1}" flags="g" byline="true"> 
     <fileset dir="." includes="file.xml"/> 
</replaceregexp> 

我幾乎得到了sa我<port=${jnpPort} />。我想要$ {jnpPort}的值從屬性文件中讀取。

回答

0

嘗試:

<replaceregexp match="@< port=\${jnpPort}/>@" replace="@< port=$(port)/>@" flags="g" byline="true"> 
     <fileset dir="." includes="file.xml"/> 
</replaceregexp> 
0

你只需要使用複製與filterset

<filterset id="version.properties.filterset" begintoken="$" endtoken="$"> <filter token="jnpPort" value="${port}" /> </filterset>

<copy file="file.xml.template" tofile="file.xml" overwrite="true" > <filterset refid="version.properties.filterset" /> </copy>

好吧,不太複製到位,但還不錯。

+0

好,謝謝。它會工作,我已經嘗試過,但我正在尋找更通用的東西。我不想定義應該替換的值,但它應該基於正則表達式。例如,在一個文件中,會有不同數量的組合。我希望$ {something}將決定從屬性文件中設置哪個值。 – user284367 2010-03-02 12:34:35