我有一个xml文件,我需要用Ant注释掉整段文本。

有这个Ant任务

<replace file="${src.dir}/Version.as" 
         token="@revisionPrana" value="${revision}"/>

我用来替换单词,但在我的情况下,我需要替换这样的整个块:

<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>

<!--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-->

所以,基本上我需要注释掉整个XML块。我可以使用替换任务执行此操作(将整个块放在属性标记中并且值不起作用)?或者是否有一种快速的方法来使用ant读取xml并删除一些节点并再次保存xml?

搜索并替换它不是一种选择,因为有多个有价值的子项而不是所有这些都需要被注释掉。

添加类似的属性不是一个选项,因为xml正由IOC容器(Prana)解析。也许prana会忽略id =&quot; 1&quot;但它仍然很混乱,从长远来看,我不喜欢凌乱。

有帮助吗?

解决方案

如果您可以通过正则表达式确定要替换的内容,我建议您使用可选任务 replaceregexp 。这是doc: http://ant.apache.org/manual/Tasks/replaceregexp。 HTML 您可以调用它两次,一次用于开始标记,另一次用于结束标记。

替换 的正则表达式可能有点麻烦,因为您说您不想替换所有 标记,但我认为这是最简单的方法。

另一种选择是创建一个自定义的ant任务来完成你想要的任务。

其他提示

如果是XML文件,那么您也可以调用XSLT转换

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top