Lie*_*oen 4 xml ant comments replace
我有一个xml文件,我需要用Ant注释掉整个文本.
有这个Ant任务
<replace file="${src.dir}/Version.as"
token="@revisionPrana" value="${revision}"/>
Run Code Online (Sandbox Code Playgroud)
我用来替换单词,但在我的情况下,我需要替换这样的整个块:
<value>
<object class="edumatic.backoffice.view.modules.NavigationModuleInfo">
<property name="url"
value="edumatic/backoffice/view/modules/support/ExamsNavigationModule.swf"/>
<property name="icon"
value="edumatic/backoffice/view/modules/support/assets/book.png" />
<property name="title" value="Assessments" />
<property name="pluginID" value="EXAM" />
</object>
</value>
<value>
<object class="edumatic.backoffice.view.modules.ContentModuleInfo">
<property name="url"
value="edumatic/backoffice/view/modules/support/ExamsContentModule.swf" />
<property name="pluginID" value="EXAM" />
</object>
</value>
Run Code Online (Sandbox Code Playgroud)
成
<!--value>
<object class="edumatic.backoffice.view.modules.NavigationModuleInfo">
<property name="url"
value="edumatic/backoffice/view/modules/support/ExamsNavigationModule.swf"/>
<property name="icon"
value="edumatic/backoffice/view/modules/support/assets/book.png" />
<property name="title" value="Assessments" />
<property name="pluginID" value="EXAM" />
</object>
</value>
<value>
<object class="edumatic.backoffice.view.modules.ContentModuleInfo">
<property name="url"
value="edumatic/backoffice/view/modules/support/ExamsContentModule.swf" />
<property name="pluginID" value="EXAM" />
</object>
</value-->
Run Code Online (Sandbox Code Playgroud)
所以,基本上我需要注释掉整个XML块.我可以使用替换任务执行此操作(将整个块放在属性标记中并且值不起作用)?或者是否有一种快速的方法来使用ant读取xml并删除一些节点并再次保存xml?
搜索和替换它不是一种选择,因为有多个有价值的子项,并不是所有这些都需要被注释掉.
添加类似的属性不是一个选项,因为xml正由IOC容器(Prana)解析.也许prana会忽略id ="1",但它仍然很混乱,从长远来看,我不喜欢凌乱.
如果您可以通过正则表达式识别要替换的内容,我建议使用可选任务replaceregexp.这是doc:http://ant.apache.org/manual/Tasks/replaceregexp.html 您可以调用它两次,一次用于开始标记,另一次用于结束标记.
替换你的正则表达式 可能有点麻烦,因为你说你不想全部替换 标签,但我认为这是最简单的方法.
另一种选择是创建自定义ant任务来执行您想要的操作.