Можете ли вы использовать Ant для сборки / изменения файлов XML? - PullRequest
6 голосов
/ 17 июня 2010

Я новичок в муравье и смотрю на задачи. Я пытаюсь создать файл XML. Нужно ли вызывать внешний процесс, или у ant есть какой-то способ сделать это? Это может быть так же просто, как отправить строку в текстовый файл и сохранить ее в формате .xml. Возможно ли это?

Ответы [ 4 ]

10 голосов
/ 26 июля 2010

Когда вам приходится иметь дело с любым видом обработки XML внутри вашего рабочего процесса ant, настоятельно рекомендуется xmltask . Очень подробная документация и хорошая поддержка. Все, что вам нужно, кроме этого, это знание XPATH . Здесь => еще одна полезная статья

6 голосов
/ 17 июня 2010

Правильный ответ зависит от того, что вы на самом деле пытаетесь сделать.

Вы можете создать крошечный XML-документ, используя echo замену задачи и аргумента, но это очень сложно поддерживать очень быстро.

Если ваша цель - создать документ XMLэто в основном стандартный шаблон с заменой пары значений, тогда вам следует взглянуть на создание шаблона документа, а затем использовать задачу Копировать с фильтрацией .

Если вам нужно изменить структурудокумент, зависящий от данных Ant (или собранных откуда-то еще), тогда использование задачи xslt будет более подходящим.Проблема с XSLT заключается в том, что он не всегда прост в использовании (XSLT использует функциональное программирование, а не процедурное программирование).

Возможно, вы найдете правильный ответ на написать свою собственную задачу Ant это будет делать именно то, что вы хотите, именно так, как вы этого хотите.

Если вы сможете лучше описать то, что вы пытаетесь достичь, я уверен, что кто-то будет рад дать более точный ответ.

5 голосов
/ 17 июня 2010

Вы можете использовать задачу Replace, чтобы заменить данную строку в шаблоне и сохранить ее в формате xml. Простой пример, как видно из документации по муравью:

<replace file="${src}/index.html" token="@@@" value="wombat"/>

Я использовал его для замены константы @version@ на фактический идентификатор сборки в проекте Java, например.

Если вы хотите выполнить более сложную обработку, вы должны посмотреть на задачу XSLT. Например, для генерации документации с заменой date в выводе вы можете использовать что-то вроде:

<xslt basedir="doc" destdir="build/doc"
      extension=".html" style="style/apache.xsl">
  <param name="date" expression="07-01-2000"/>
</xslt>
1 голос
/ 17 июня 2010

Вы могли бы сделать это, хотя мне кажется, что это скорее что-то, что вы хотели бы написать заранее, или что-то, к чему вы могли бы обратиться из Ant.

Задача будет:

<echo file="my.xml"><!--put escaped xml here--></echo>

Это, конечно, будет утомительно, поскольку от всего нужно сбежать, но вы можете это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...