Frage

Ich habe eine XML-Datei, in der ich ein ganzes Stück Text mit Ant kommentieren Sie müssen.

Es gibt diese Ant-Task

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

, dass ich Worte ersetzen verwenden, aber in meinem Fall brauche ich einen ganzen Block wie folgt ersetzt werden:

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

Also, im Grunde brauche ich einen ganzen Block von XML-Kommentar aus. Kann ich dies tun mit einer Aufgabe ersetzen (den ganzen Block in dem Attribut Token und Wert nicht wirklich funktionieren setzen)? Oder gibt es eine schnelle Möglichkeit, mit Ant in der XML zu lesen und einige Knoten löschen und die xml wieder speichern?

für das Suchen und ersetzen durch keine Option ist, weil es mehrere Werte Kinder und nicht alle von ihnen müssen werden kommentiert werden.

Das Hinzufügen eines Attributs wie ist keine Option, entweder weil die xml durch einen IOC-Container (Prana) analysiert wird. Vielleicht Prana die id = „1“ ignorieren, aber es immer noch iss chaotisch, und ich weiß nicht auf lange Sicht chaotisch mögen.

War es hilfreich?

Lösung

Wenn Sie erkennen, was durch einen regulären Ausdruck ersetzt werden soll, empfehle ich die optionale Aufgabe mit replaceregexp . Hier ist der doc: http://ant.apache.org/manual/Tasks/replaceregexp. html Sie können sie zweimal anrufen, eine für den Start-Tag und andere für den End-Tag.

Die regexp für das Ersetzen der kann ein wenig umständlich sein, da Sie sagen, Sie wollen nicht ersetzen alle -Tags, aber ich denke, das ist der einfachste Weg ist.

Eine weitere Möglichkeit eine benutzerdefinierte Ant-Task zu erstellen wäre zu tun, was Sie wollen.

Andere Tipps

Wenn es sich um eine XML-Datei ist, dann könnte man auch eine XSLT-Transformation aufrufen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top