我是新來的Ant中的ReplaceRegExp函數,並且有一些問題。Ant ReplaceRegExp問題
這是我的用例。
我有多個.xml文件,我需要以特定方式操作。
這裏的.XML內容的一個例子:
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>29.0</apiVersion>
<packageVersions>
<majorNumber>1</majorNumber>
<minorNumber>1228</minorNumber>
<namespace>prefix1__FirstNamespace</namespace>
</packageVersions>
<packageVersions>
<majorNumber>2</majorNumber>
<minorNumber>4</minorNumber>
<namespace>prefix2__TheNextNamespace</namespace>
</packageVersions>
<packageVersions>
<majorNumber>7</majorNumber>
<minorNumber>542</minorNumber>
<namespace>prefix3__AnotherNamespace</namespace>
</packageVersions>
<status>Active</status>
</ApexClass>
如何更新,其中屬性包含前綴「prefix3」唯一的的&屬性?
我試過這個功能,希望屬性改變由$指定的值{} correctMinorNumber:
<target name="setminorNumber">
<replaceregexp flags="gis"
match="<minorNumber>?(.*)</minorNumber>?(.+?)<namespace>prefix3__</namespace>"
byline="false"
>
<substitution expression="<minorNumber>${correctMinorNumber}</minorNumber> 		<namespace>prefix3__</namespace>"/>
<fileset dir="${sf.retrieveFolder}">
<include name="**/*.xml"/>
</fileset>
</replaceregexp>
</target>
它工作在正確的地方,只有一個<packageVersion>
節點(與prefix3__文件名稱空間),但是在包含多個節點的文件上,它會用一個prefix3__節點替換所有節點。我猜猜問題在於我使用了通配符,但我不知道replaceregexp來確定正確的解決方案。
關於我能做些什麼來實現我需要做的任何想法?
任何幫助表示讚賞。
謝謝你,這看起來很有希望!一個問題,這項工作將在一個目錄中多個.xml文件?或者有沒有辦法遍歷所有文件併爲每個文件運行此任務? –
''需要一個'',它可以用一次調用處理多個文件:'' –
是的,我之前發現的和它的工作,感謝一百萬人的幫助! –