4

Ant でテキスト全体をコメントアウトする必要がある xml ファイルがあります。

この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="1" を無視するかもしれませんが、それでも乱雑です。

4

2 に答える 2

8

正規表現で置換対象を特定できる場合は、オプションのタスクreplaceregexpを使用することをお勧めします。ドキュメントは次のとおりです: http://ant.apache.org/manual/Tasks/replaceregexp.html 2 回呼び出すことができます。1 つは開始タグ用、もう 1 つは終了タグ用です。

あなたを置き換えるための正規表現すべてを置き換えたくないと言うので、少し面倒になる可能性がありますタグですが、これが一番簡単だと思います。

もう 1 つのオプションは、必要なことを行うカスタム ant タスクを作成することです。

于 2008-10-23T13:13:09.390 に答える
3

XML ファイルの場合は、XSLT 変換を呼び出すこともできます

于 2008-10-24T23:15:29.317 に答える