Я совершенно новый для муравья и смотрел на задачи. Я пытаюсь создать файл xml. Нужно ли мне обращаться к внешнему процессу, или у муравья есть какой-то способ сделать это? Это может быть так же просто, как отправить строку в txt-файл и сохранить его как .xml. Является ли это возможным?Можете ли вы использовать Ant для сборки/изменения файлов XML?
ответ
Правильный ответ зависит от того, что вы на самом деле пытаетесь сделать.
Вы можете создать крошечный документ xml с помощью замены задачи и аргументов echo, но это очень сложно поддерживать очень быстро.
Если ваша цель состоит в том, чтобы сгенерировать XML-документ, который является главным образом шаблоном с заменой нескольких значений, тогда вы должны посмотреть на создание документа шаблона и затем с помощью задачи Copy with filtering.
Если вам нужно изменить структуру документа в зависимости от данных из Ant (или собраны из другого места), то использование задачи xslt будет лучше. Проблема с XSLT заключается в том, что она не всегда прямолинейна (XSLT использует функциональное программирование, а не процедурное программирование).
Вы можете найти правильный ответ write your own Ant task, который будет делать именно то, что вы хотите, именно так, как вы этого хотите.
Если вы можете лучше описать то, что вы пытаетесь достичь, я уверен, что кто-то будет счастлив предоставить более точный ответ.
Спасибо, я пошел с копированием с фильтрацией, работает очень красиво! – sarcasteak
Вопрос только о «краевом» вопросе - задача «copy-with-filter» корректно обрабатывает значения, содержащие специальные символы XML (<, & etc?) – monojohnny
Копия с фильтром не указана - все, что она делает, это копирование байтов со значением подстановки. Фокус в том, что вы определяете значения внутри файла сборки XML. Если вы можете правильно определить значения в первую очередь, copy-with-filter заменит их в порядке. –
Вы можете сделать это, хотя мне кажется, что это скорее похоже на что-то, что вы хотели бы написать заранее, или что-то, что вы могли бы вызвать из Ant.
Задача будет:
<echo file="my.xml"><!--put escaped xml here--></echo>
Это, конечно, собирается быть утомительным, так как все должно быть экранированы, но вы можете сделать это.
Вы можете использовать задачу Replace
, чтобы заменить данную строку в шаблоне и сохранить ее как xml. Простой пример, как показано в муравьиной документации:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
Я использовал его, чтобы заменить постоянную @[email protected]
фактическим идентификатором сборки в проекте Java, например.
Если вы хотите выполнить более сложную обработку, вы должны посмотреть на задачу XSLT
. Foe пример, для создания документации, с date
заменить на выходе, вы можете использовать что-то вроде:
<xslt basedir="doc" destdir="build/doc"
extension=".html" style="style/apache.xsl">
<param name="date" expression="07-01-2000"/>
</xslt>
Если вам нужно иметь дело с любым видом обработки XML в вашем рабочем процессе ant, рекомендуется использовать xmltask. Очень подробная документация и хорошая поддержка. Все, что вам нужно, это около XPATH knowledge. Здесь =>another helpful article
- 1. Можете ли вы использовать xml для доступа?
- 2. Можете ли вы выполнить задачу Ant из пользовательской задачи Ant?
- 3. Можете ли вы использовать antixml для создания XML-документов?
- 4. Можете ли вы использовать WcfTestClient для WebApi?
- 5. Можете ли вы использовать jQuery в ePub
- 6. Можете ли вы использовать PHP внутри файлов-мопедов?
- 7. Можете ли вы создать таблицу из XML
- 8. Можете ли вы использовать другие форматы помимо XML с XMLHttpRequest?
- 9. Можете ли вы помочь мне избежать блокировки JUnit в установке для сборки Ant/Slave Ant?
- 10. Можете ли вы связать несколько файлов python?
- 11. Как вы можете использовать пользовательские Ant PropertyExpander внутри сценария
- 12. Можете ли вы упростить XML-массивы?
- 13. Ant: Как вы можете распечатать свои ошибки?
- 14. Где вы можете получить форматы XML-файлов от
- 15. Можете ли вы порекомендовать хороший менеджер файлов django для администратора?
- 16. Можете ли вы использовать WatchViewStub в GridViewPager для Android Wear?
- 17. Можете ли вы использовать word_diff с Gitlab?
- 18. Можете ли вы повторно использовать код в SSIS? Можете ли вы программно изменить источник/цель?
- 19. Можете ли вы использовать исправление через do.call?
- 20. Можете ли вы использовать AngularJS с Parse.com?
- 21. Можете ли вы использовать detectmobilebrowser для ссылки на таблицу стилей?
- 22. Можете ли вы использовать csv.DictReader без файла?
- 23. Можете ли вы использовать C++ в Xcode?
- 24. Можете ли вы использовать OnClickListener с тостами?
- 25. Можете ли вы использовать RSpec, Shoulda, RCov?
- 26. Можете ли вы использовать итератор в массиве?
- 27. Можете ли вы использовать ValidationRules в ListBox.SelectedItems?
- 28. Можете ли вы использовать SharedPreferences внутри фрагмента?
- 29. Можете ли вы использовать CollectionViewSource внутри DataTemplate?
- 30. Можете ли вы использовать SimpleXML в PHP для анализа файлов plist?
Не достаточная задача ['Replace'] (http://ant.apache.org/manual/Tasks/replace.html) для того, что вы хотите сделать? – tonio
Спасибо, эти ответы очень полезны. – sarcasteak