Как заменить токен в XML-файле с именами файлов в муравей? - PullRequest
1 голос
/ 01 марта 2011

У меня есть XML-файл с определенным элементом, повторяемым один раз для каждого элемента в списке. Этот список устанавливается в файле свойств для ant.

на основе списка в файле свойств

modules.list = a, b, c, d

Мне нужно включить это: <module name=@modulename@ /> в

<module name="a" \> <module name="b" \> и др.,

Это сводит меня с ума. Я пытался использовать для в списке, но не могу понять, как заменить токен один раз для каждого списка. По сути, это не только маркер замены, но и вещь «генерировать новый контент» ... * Thankyou 1014 *

Ответы [ 2 ]

4 голосов
/ 01 марта 2011

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

Вы можете использовать задачу преобразования xsl для ant и передать параметр ant и путь к файлу xml.преобразование xsl.

<xslt in="input.xml" out="output.xml"
  style="transformation.xsl">
  <param name="modules.list" expression="a,b,c,d"/>
</xslt>

в xslt вы можете легко разбить строку на список с помощью функции tokenize() и выполнить итерации элементов с помощью элемента for-each.Внутри вы можете создавать свои предметы.

надеюсь, что это поможет

Я думаю, что xsl - правильный инструмент для этой цели.

1 голос
/ 01 марта 2011

Я бы рекомендовал использовать шаблонизатор, такой как Apache Velocity. Ant не предназначен для задачи, к которой вы пытаетесь его применить, хотя вы можете запустить генерацию с помощью другого инструмента из общего скрипта ant.

Или вы можете использовать XSLT, который является трансформационным (а не языковым шаблоном). Если вы уже знаете XSLT, тогда иди с этим. В противном случае, я думаю, вы обнаружите, что изучение движка шаблонов проще, чем изучение XSLT.

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