Reemplazando múltiples líneas de texto con Ant

votos
4

Tengo un archivo xml donde necesito comentar todo un texto con Ant.

Esta es la tarea de Ant

<replace file=${src.dir}/Version.as 
         [email protected] value=${revision}/>

que utilizo para reemplazar palabras, pero en mi caso necesito reemplazar un bloque completo como este:

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

Dentro

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

Entonces, básicamente necesito comentar todo un bloque de XML. ¿Puedo hacer esto con una tarea de reemplazo (poner todo el bloque en el token de atributo y el valor realmente no funciona)? ¿O hay una forma rápida de leer en el xml con ant y eliminar algunos nodos y guardar el xml nuevamente?

Buscarlo y reemplazarlo no es una opción porque hay varios valores secundarios y no todos deben ser comentados.

Agregar un atributo como no es una opción porque el xml está siendo analizado por un contenedor IOC (Prana). Tal vez prana ignorará el ID = 1 pero sigue siendo desordenado, y no me gusta el desorden a largo plazo.

Publicado el 23/10/2008 a las 11:46
por usuario
En otros idiomas...                            


2 respuestas

votos
8

Si puede identificar lo que se va a reemplazar a través de una expresión regular, le recomiendo usar la tarea opcional replaceregexp . Aquí está el documento: http://ant.apache.org/manual/Tasks/replaceregexp.html Puede llamarlo dos veces, una para la etiqueta de inicio y otra para la etiqueta de finalización.

La expresión regular para reemplazar su puede ser un poco engorroso, ya que dices que no quieres reemplazar todo etiquetas, pero creo que esta es la forma más fácil.

Otra opción sería crear una tarea de hormiga personalizada para hacer lo que desee.

Respondida el 23/10/2008 a las 12:13
fuente por usuario

votos
3

Si se trata de un archivo XML, también podría llamar a una transformación XSLT

Respondida el 24/10/2008 a las 22:15
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more