Ich bin ziemlich neu in ant und habe mir die Aufgaben angeschaut. Ich versuche eine XML-Datei zu erstellen. Muss ich einen externen Prozess aufrufen oder hat eine Möglichkeit, dies zu tun? Es könnte so einfach sein, wie eine Zeichenfolge an eine TXT-Datei zu senden und sie als .xml zu speichern. Ist es möglich?Können Sie mit Ant XML-Dateien erstellen/ändern?
Antwort
Die richtige Antwort hängt davon ab, was Sie versuchen, tatsächlich zu tun.
Sie könnten ein kleines XML-Dokument mit echo Task-und Argument-Ersatz erstellen, aber das wird schwierig, sehr schnell zu pflegen.
Wenn Ihr Ziel ist, ein XML-Dokument zu generieren, das hauptsächlich aus mehreren Werten besteht, sollten Sie ein Vorlagedokument erstellen und dann die Aufgabe Copy with filtering verwenden.
Wenn Sie die Struktur des Dokuments abhängig von Daten von Ant (oder von woanders gesammelt) ändern müssen, dann wird die Aufgabe xslt besser passen. Das Problem mit XSLT ist, dass es nicht immer einfach zu verwenden ist (XSLT verwendet funktionale Programmierung, nicht prozedurale Programmierung).
Sie können feststellen, dass die richtige Antwort write your own Ant task ist, die genau das tun wird, was Sie wollen, genau wie Sie es wollen.
Wenn Sie besser beschreiben können, was Sie erreichen möchten, bin ich sicher, dass jemand eine genauere Antwort geben wird.
Danke, ich ging mit dem Kopieren mit Filtern, funktioniert sehr gut! – sarcasteak
Nur eine "Edge-Case" -Frage - behandelt die 'Copy-with-filter'-Task korrekt Werte, die spezielle XML-Zeichen enthalten (<, & etc?)?) – monojohnny
Kopieren mit Filter ist dumm - alles was es tut, ist Bytes kopieren, mit Wert Substitution. Der Trick besteht darin, dass Sie die Werte in einer XML-Build-Datei definieren. Wenn Sie die Werte an erster Stelle richtig definieren können, ersetzt copy-with-filter sie in Ordnung. –
Du könntest das tun, obwohl es mir eher wie etwas ist, was du vorher schreiben willst, oder etwas, das du von Ant ausrufen könntest.
würde die Aufgabe sein:
<echo file="my.xml"><!--put escaped xml here--></echo>
Das ist natürlich mühsam zu gehen, da alles entgangen sein muss, aber man kann es tun.
Mit der Task Replace
können Sie eine bestimmte Zeichenfolge in einer Vorlage ersetzen und als XML speichern. Ein einfaches Beispiel, wie in der ant Dokumentation gesehen:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
ich es verwendet, um ein konstantes @[email protected]
von dem aktuellen Build-ID in einem Java-Projekt zu ersetzen, zum Beispiel. Wenn Sie eine komplexere Verarbeitung durchführen möchten, sollten Sie sich die Aufgabe XSLT
ansehen. Foe Beispiel Dokumentation zu erzeugen, mit den date
in der Ausgabe ersetzen, können Sie so etwas wie verwenden:
<xslt basedir="doc" destdir="build/doc"
extension=".html" style="style/apache.xsl">
<param name="date" expression="07-01-2000"/>
</xslt>
Wenn Sie mit einer beliebigen XML-Verarbeitung in Ihrem Ant-Workflow arbeiten müssen, wird dringend empfohlen, die xmltask zu verwenden. Sehr detaillierte Dokumentation und gute Unterstützung. Alles, was Sie dazu brauchen, sind einige XPATH knowledge. Hier =>another helpful article
- 1. Ant: Holen Sie mehrere Übereinstimmungen mit propertyregex
- 2. Löschen Sie doppelte Dateien mit ant?
- 3. So kopieren Sie ein Verzeichnis mit Ant
- 4. Setzen Sie eine Ant-Option mit -D
- 5. Führen Sie interaktives Programm mit Apache Ant
- 6. Ant Kolonie-Optimierung mit .NET
- 7. Installationsproblem mit Ant 1.9.4
- 8. System.out mit Ant
- 9. Kompilieren J2ME mit Ant
- 10. integrating grunt mit ant
- 11. NoClassDefFoundError mit Ant
- 12. Update-Konfigurationsdatei mit Ant
- 13. NoSuchMethodError mit Ant
- 14. Parse Json mit Ant
- 15. Ant-Task mit Maven ausführen
- 16. Arbeiten mit ant Namespace/Verzeichnisstruktur
- 17. Filtern von Dateien mit Ant?
- 18. Führen Sie ant-Task in verschiedenen jvm
- 19. Verwenden Sie Eclipse-Klassenpfad in Ant-Aufgaben
- 20. Ant Erfolgreich, auch wenn Ant Task fehlschlägt
- 21. In Javascript, das von Ant läuft, wie können Sie einen Argumentwert erhalten?
- 22. Ant: Verwenden Sie ein- und ausschließen zusammen
- 23. Erstellen eines Bündelglas mit Ant
- 24. Setze eine Systemeigenschaft mit ant
- 25. Ant run Befehl mit Rohren
- 26. Kompilieren von SOA mit Ant
- 27. Abhängigkeitsprobleme mit meinem ANT-Skript
- 28. Wie GCJ mit Ant verwenden?
- 29. Running ant mit phpunit stürzt
- 30. Generieren Sie XML-Berichte mit Ant, aber wie?
Ist die Aufgabe ['Replace'] (http://ant.apache.org/manual/Tasks/replace.html) nicht ausreichend für das, was Sie tun möchten? – tonio
Danke, diese Antworten sind alle sehr nützlich. – sarcasteak