我在ant中有一个XML处理框架,需要根据映射文件替换一些实体引用。我将映射文件格式化为带有条目的属性文件:
使用oldName = NEWNAME
我正在考虑像这样使用ReplaceRegExp:
<replaceregexp
match="&(e-[^;]+);" //find entity refs
replace="&${\1};" //replace with matched property value (but only if property exists)
似乎没有明显的方法来实现条件,并且替换值不能解析属性值。
我可能会在Java中实现自定义ant任务。如果有人知道在ant / contrib中实现这一目的的聪明方法,我希望看到它!我查看了copy / filterchain,但似乎使用了相同的regexp功能。然后是<script>
,但这几乎就像编写自定义任务一样。