Domanda

Ho un file XML dove devo commentare un intero pezzo di testo con Ant.

C'è questo compito di formica

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

che uso per sostituire le parole, ma nel mio caso ho bisogno di sostituire un intero blocco come questo:

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

In

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

Quindi, in sostanza, devo commentare un intero blocco di XML. Posso farlo con un'attività di sostituzione (mettendo l'intero blocco nel token dell'attributo e il valore non funziona davvero)? Oppure c'è un modo rapido per leggere nel file XML con la formica ed eliminare alcuni nodi e salvare nuovamente il file XML?

Cercare e sostituirlo con non è un'opzione perché ci sono più figli di valore e non tutti devono essere commentati.

L'aggiunta di un attributo come non è un'opzione perché l'xml viene analizzato da un contenitore IOC (Prana). Forse prana ignorerà id = " 1 " ma è ancora disordinato, e non mi piace disordinato a lungo termine.

È stato utile?

Soluzione

Se riesci a identificare ciò che deve essere sostituito tramite un'espressione regolare, ti consiglio di utilizzare l'attività facoltativa replaceregexp . Ecco il documento: http://ant.apache.org/manual/Tasks/replaceregexp. html Puoi chiamarlo due volte, uno per il tag iniziale e l'altro per il tag finale.

Il regexp per sostituire il tuo può essere un po 'ingombrante, dal momento che dici di non voler sostituire tutti i tag , ma penso che questo sia il modo più semplice.

Un'altra opzione sarebbe quella di creare un'attività di formica personalizzata per fare ciò che vuoi.

Altri suggerimenti

Se si tratta di un file XML, è possibile anche chiamare una trasformazione XSLT

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top