Pergunta

Eu tenho um arquivo xml onde eu preciso comentar uma peça inteira de texto com Ant.

Há essa tarefa Ant

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

que eu uso para substituir palavras, mas no meu caso eu precise substituir um bloco inteiro assim:

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

Em

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

Então, basicamente eu preciso comentar um bloco inteiro de XML. Posso fazer isso com uma tarefa substituir (colocando todo o bloco no atributo token e valor realmente não funciona)? Ou há uma maneira rápida de ler no xml com formiga e excluir alguns nós e salvar o XML novamente?

Procurar e substituí-la não é uma opção porque existem vários filhos valor e nem todos eles precisam ser comentadas.

Como adicionar um atributo como não é uma opção porque o xml está sendo analisado por um recipiente COI (Prana). Talvez prana irá ignorar o id = "1", mas bagunçada ainda iss, e eu não gosto de bagunça no longo prazo.

Foi útil?

Solução

Se você pode identificar o que deve ser substituída por uma expressão regular, eu recomendo usar a tarefa opcional replaceregexp . Aqui está o doc: http://ant.apache.org/manual/Tasks/replaceregexp. html Você pode chamá-lo duas vezes, uma para a marca de início e outro para a marca de fim.

A expressão regular para substituir o seu pode ser um pouco complicado, uma vez que você diz que não quer substituir todo marcas, mas acho que esta é a maneira mais fácil.

Outra opção seria a criação de uma tarefa formiga personalizado para fazer o que quiser.

Outras dicas

Se for um arquivo XML, então você poderia também chamar transformar um XSLT

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top