我有一个属性文件,我想要回显值
<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>
即我一次只能获得一个属性值,而不能同时获得两个属性值。
感谢。
答案 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>