Как насчет задачи echoxml
?
В вашем примере файл сборки заменяет строку
<echo>The element works only in restricted cases: <elem /> </echo>
с
<echoxml><elem /></echoxml>
результат в
$ ant does.not.work
...
does.not.work:
[echo] Sure, the attribute is easy to debug: contents of attribute
<?xml version="1.0" encoding="UTF-8"?>
<sub.elem>contents of sub.elem</sub.elem>
Возможно, декларация XML не нужна. Вы можете использовать атрибут echoxml file
, чтобы поместить вывод во временный файл, затем прочитать этот файл и удалить объявление или переформатировать информацию, как считаете нужным.
редактировать
Поразмышляя, вы, вероятно, можете приблизиться к тому, что вы описываете, например, к этому последовательному телу вашего макродефа
<sequential>
<echo>Sure, the attribute is easy to debug: @{attr}</echo>
<echoxml file="macro_elem.xml"><elem /></echoxml>
<loadfile property="elem" srcFile="macro_elem.xml">
<filterchain>
<LineContainsRegexp negate="yes">
<regexp pattern=".xml version=.1.0. encoding=.UTF-8..." />
</LineContainsRegexp>
</filterchain>
</loadfile>
<echo message="${elem}" />
</sequential>
1025 * дает *
$ ant does.not.work
...
does.not.work:
[echo] Sure, the attribute is easy to debug: contents of attribute
[echo] <sub.elem>contents of sub.elem</sub.elem>