Jestem całkiem nowy dla mrówki i patrzę na zadania. Próbuję wygenerować plik xml. Czy muszę wywoływać proces zewnętrzny lub czy mrówka ma jakiś sposób to zrobić? Może to być tak proste, jak wysłanie ciągu znaków do pliku txt i zapisanie go jako .xml. Czy to możliwe?Czy możesz używać Ant do budowania/modyfikowania plików XML?
Odpowiedz
Prawidłowa odpowiedź zależy od tego, czego faktycznie zrobić.
Można utworzyć mały dokument XML przy użyciu zadania echo i wymiany argumentów, ale to bardzo trudne do utrzymania bardzo szybko.
Jeśli Twoim celem jest wygenerowanie dokumentu XML, który jest w większości oparty na tablicy z kilkoma podstawionymi wartościami, powinieneś spojrzeć na tworzenie dokumentu szablonu, a następnie użyć zadania Copy with filtering.
Jeśli chcesz zmodyfikować strukturę dokumentu w zależności od danych z Ant (lub zebranych z innego miejsca), to lepiej będzie użyć zadania xslt. Problem z XSLT polega na tym, że nie zawsze jest on prosty w użyciu (XSLT wykorzystuje funkcjonalne programowanie, a nie programowanie proceduralne).
Może się okazać, że poprawną odpowiedzią jest write your own Ant task, która zrobi dokładnie to, czego chcesz, dokładnie tak, jak chcesz.
Jeśli możesz lepiej opisać, co chcesz osiągnąć, jestem pewien, że ktoś z przyjemnością udzieli bardziej precyzyjnej odpowiedzi.
Dzięki, poszedłem z kopiowaniem z filtrowaniem, działa bardzo ładnie! – sarcasteak
Po prostu pytanie o "krawędzie" - czy zadanie "kopiuj z filtrem" poprawnie obsługuje wartości zawierające specjalne znaki XML (<, itd.?) – monojohnny
Kopiowanie z filtrem jest głupie - wszystko, co robi, to kopiowanie bajtów z podstawieniem wartości. Sztuczka polega na tym, że definiujesz wartości wewnątrz pliku kompilacji XML. Jeśli możesz poprawnie zdefiniować wartości w pierwszej kolejności, funkcja copy-with-filter zastąpi je dobrze. –
Możesz to zrobić, chociaż wydaje mi się, że jest to coś, co chciałbyś wcześniej napisać lub coś, do czego możesz zadzwonić z Anta.
zadaniem byłoby:
<echo file="my.xml"><!--put escaped xml here--></echo>
Jest to oczywiście będzie to uciążliwe, ponieważ wszystko musi być uciekł, ale można to zrobić.
Możesz użyć zadania Replace
, aby zastąpić dany ciąg w szablonie i zapisać go jako xml. Prosty przykład, jak widać na ant dokumentacji:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
użyłem go zastąpić stałą @[email protected]
przez rzeczywisty identyfikator kompilacji w projekcie java, na przykład.
Jeśli chcesz wykonać bardziej złożone przetwarzanie, powinieneś spojrzeć na zadanie XSLT
. Foe przykład, do generowania dokumentacji, z date
wymienić na wyjściu, można użyć coś takiego:
<xslt basedir="doc" destdir="build/doc"
extension=".html" style="style/apache.xsl">
<param name="date" expression="07-01-2000"/>
</xslt>
Kiedy masz do czynienia z jakimkolwiek przetwarzaniem XML w ramach swojego przepływu pracy z mrówkami, zdecydowanie zaleca się xmltask. Bardzo szczegółowa dokumentacja i dobre wsparcie. Wszystko, czego potrzebujesz, to około XPATH knowledge. Tutaj =>another helpful article
- 1. Czy możesz używać antyfiksu do tworzenia dokumentów XML?
- 2. Czy możesz używać AngularJS z Parse.com?
- 3. Czy istnieje AssertEquals do testowania plików XML?
- 4. Czy możesz używać Mysqli do przygotowania, wykonania i wycofania razem?
- 5. Czy można bezpiecznie używać XMLDecoder do odczytu plików dokumentów?
- 6. Jak używać Sinatry do serwowania dokumentów XML?
- 7. czy możesz telnetować do ssh?
- 8. Przekaż ant target do wielu plików build.xml w podkatalogach
- 9. Ant: Zmień nazwy plików na ich MD5
- 10. Jak używać programu Nokogiri :: XML :: Reader do analizowania dużych plików XML?
- 11. Przetwarzanie dużych plików xml
- 12. Zmiana nazwy plików podczas kopiowania ANT
- 13. Czy możesz używać oczekujących zamiarów w lokalnych transmisjach?
- 14. Czy istnieją standardy kodowania plików XML?
- 15. Czy możesz używać liczb jako nazw tabel w MySQL?
- 16. Czy możesz używać obiektów Future/FutureTask ze Spring TaskExecutors?
- 17. Czy możesz używać Zdalnej konsoli VMWare w Google Chrome?
- 18. Kiedy należy używać plików XSD?
- 19. Czy możesz usunąć strukturę folderów podczas kopiowania plików w haśle?
- 20. Uzyskiwanie ANT do scp tylko nowych/zmienionych plików
- 21. Czy możemy użyć pom.xml do ANT
- 22. Generowanie plików XML używanych przez JUnit Reports
- 23. Czy istnieje sposób, w jaki mogę używać repozytoriów Maven do dodawania zależności do Ant?
- 24. Czy można używać wstawianych komentarzy do plików .ini z PHP?
- 25. Czy powinienem używać redis do przechowywania dużej liczby plików binarnych?
- 26. Czy możesz dodać warunek do deklaracji zmiennej?
- 27. Czy możesz przekazać argument do sigaction?
- 28. Czy możesz dodać priorytety do wywołań AJAX
- 29. Czy możesz renderować plik PHP do zmiennej?
- 30. Zestaw plików ant dir wyklucza określony katalog
Czy zadanie ['Zamień'] (http://ant.apache.org/manual/Tasks/replace.html) nie wystarcza do tego, co chcesz zrobić? – tonio
Dzięki, te odpowiedzi są bardzo przydatne. – sarcasteak