Ant & как разобрать файл свойств, чтобы отобразить значения

У меня есть файл свойств, который я хочу отобразить значения

<HSMKeys>
<Key domain="default" value="TestA" />
<Key domain="fixed" value="TestB" /> 
</HSMKeys>

как

[echo] domain=default value=TestA
[echo] domain=fixed value=TestB

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

Я пробовал следующее

<for list="${HSMKeys.Key.domain}" param="domain">
<sequential>
<echo>domain=@{domain}</echo>
</sequential>
</for>

т.е. я могу получить только одно значение атрибута за раз, а не оба сразу.

Благодарю.

2 ответа

Как сказал @thekbb, это не файл свойств, однако ANT поддерживает синтаксический анализ файлов XML как свойств.

<project name="demo" default="print">

  <xmlproperty file="properties.xml"/>

  <target name="print">
    <echoproperties prefix="HSMKeys."/>
  </target>

</project>

Производит следующий вывод:

print:
[echoproperties] #Ant properties
[echoproperties] #Tue Dec 03 23:44:14 GMT 2013
[echoproperties] HSMKeys.Key=,
[echoproperties] HSMKeys.Key(domain)=default,fixed
[echoproperties] HSMKeys.Key(value)=TestA,TestB

Может быть не совсем то, что вам нужно, но имеет то преимущество, что не требует дополнительных jar, таких как Ant-contrib.

Это не файл свойств. Файлы свойств представляют собой пары ключ / значение. Как вы заселены list?

файл свойств, который будет понимать муравей, будет выглядеть так:

domain.default=TestA
domain.fixed=testB

Я рекомендую избегать ant-contrib любой ценой... что вы на самом деле пытаетесь сделать? Вы могли бы просто использовать echoproperties

<project name="test" default="echo" basedir=".">

    <property file="build.properties" />

    <target name="echo" >
        <echoproperties prefix="domain."/>
    </target>

</project>
Другие вопросы по тегам