蚂蚁&如何解析属性文件以回显值

时间:2013-12-03 22:14:21

标签: ant ant-contrib

我有一个属性文件,我想要回显值

<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 个答案:

答案 0 :(得分:2)

正如@thekbb所说,这不是属性文件,但ANT支持parsing of XML files作为属性。

<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

可能不是您需要的,但其优点是不需要像Ant-contrib那样的额外罐子。

答案 1 :(得分:0)

那不是属性文件。属性文件是键/值对。你是如何填充list的?

属性文件ant会理解为:

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>