質問

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 =&quot; 1&quot;を無視するでしょう。しかし、それはまだ厄介であり、長期的には厄介ではありません。

役に立ちましたか?

解決

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

を置き換えるための正規表現は、すべての タグを置き換えたくないと言うので、少し面倒な場合がありますが、これが最も簡単な方法だと思います。

別のオプションは、希望することを行うためにカスタムantタスクを作成することです。

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top