我有一个像这样的XML文件:
<vrmlist>
<vrm version="4" product="prod1" platform="windows"/>
<vrm version="1" product="prod1" platform="web"/>
<vrm version="6" product="prod2" platform="windows"/>
</vrmlist>
该文件用于其他目的,因此更改其结构将很困难。我想使用<xmlproperty>
任务独立访问每个项目的版本。
实施例
<xmlproperty file="test.xml"/>
<target name="test">
<echo>Version: ${vrmlist.vrm(version)}</echo>
</target>
结果
test:
[echo] Version: 4,1,6
我想要的是能够独立访问给定产品和平台的每个<vrm>
的属性,以便我可以在构建文件中使用它。
我想要的例子(不起作用):
<echo>${vrmlist.vrm[@product="prod1" and @platform="windows"](version)}</echo>
Test:
[echo] Version: 4
这可能吗?
类似的问题:Ant xmlproperty task. What happens when there is more than one tag with the same name?
答案 0 :(得分:0)
免费的第三方XmlTask库可以使用XPath提取XML值:
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
<xmltask>
<fileset file="src.xml"/>
<copy
path="/vrmlist/vrm[@product='prod1' and @platform='windows']/@version"
property="vrm.version"/>
</xmltask>
<echo>vrm.version : ${vrm.version}</echo>
run:
[echo] vrm.version : 4