Question

J'ai un fichier xml dans lequel je dois commenter tout un texte avec Ant.

Il y a cette tâche Ant

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

que j'utilise pour remplacer les mots, mais dans mon cas, je dois remplacer tout un bloc comme celui-ci:

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

Dans

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

Donc, en gros, je dois commenter tout un bloc de XML. Puis-je faire cela avec une tâche de remplacement (mettre tout le bloc dans le jeton d'attribut et la valeur ne fonctionne pas vraiment)? Ou existe-t-il un moyen rapide de lire le fichier XML avec ant, de supprimer certains nœuds et de sauvegarder à nouveau le fichier XML?

La recherche et son remplacement par n’est pas une option car il existe plusieurs enfants de valeur et il n’est pas nécessaire de les commenter tous.

L'ajout d'un attribut comme n'est pas une option non plus, car le xml est analysé par un conteneur IOC (Prana). Peut-être que prana ignorera l'id = " 1 " mais il est toujours désordonné et je n'aime pas le désordre à long terme.

Était-ce utile?

La solution

Si vous pouvez identifier ce qui doit être remplacé par une expression régulière, je vous recommande d'utiliser la tâche facultative replaceregexp . Voici la documentation: http://ant.apache.org/manual/Tasks/replaceregexp. html Vous pouvez l'appeler deux fois, une pour la balise de début et l'autre pour la balise de fin.

L'expression rationnelle utilisée pour remplacer votre peut être un peu lourde, car vous ne souhaitez pas remplacer toutes les balises , mais je pense que c'est le moyen le plus simple.

Une autre option serait de créer une tâche ant personnalisée pour faire ce que vous voulez.

Autres conseils

S'il s'agit d'un fichier XML, vous pouvez également appeler une transformation XSLT

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top