我有一个 xml 文件“versionreferance.xml”。下面是编码
<?xml version="1.0" encoding="utf-8"?>
<!-- Update "revision" value to -1 when the next build is intended to have its revision as 0. This needs to be done for patch/release builds-->
<BuildVersions>
<property name="major" value="1" />
<property name="minor" value="0" />
<property name="patch" value="0" />
<property name="revision" value="93" />
</BuildVersions>
另一个是我的 ant-build.xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<project name="xmlproperty-demo" default="init">
<xmlproperty file="versionreferance.xml" collapseAttributes="true" />
<echo>Major : ${BuildVersions.major}</echo>
<echo>Minor : ${BuildVersions.minor}</echo>
<echo>Patch : ${BuildVersions.patch}</echo>
<echo>Revision : ${BuildVersions.revision}</echo>
</project>
我没有得到输出中的值。
我想动态获取 versionReference.xml 的路径,该路径与 antbuild.xml 位于不同的位置
开发\构建\VersionReference.xml
开发\Src\JAAS API\antbuild.xml
它应该是动态的。我能够从下面的代码中获取值。但它不是动态的。
<?xml version="1.0" encoding="UTF-8"?>
<project name="xmlproperty-demo" default="init">
<xmlproperty file="C:\\Development\\Build\\versionreferance.xml" collapseAttributes="true" />
<echo>Major : ${BuildVersions.major}</echo>
<echo>Minor : ${BuildVersions.minor}</echo>
<echo>Patch : ${BuildVersions.patch}</echo>
<echo>Revision : ${BuildVersions.revision}</echo>
</project>
我只想获取这种格式的值。
<?xml version="1.0" encoding="utf-8"?>
<!-- Update "revision" value to -1 when the next build is intended to have its revision as 0. This needs to be done for patch/release builds-->
<BuildVersions>
<property name="major" value="1" />
<property name="minor" value="0" />
<property name="patch" value="0" />
<property name="revision" value="93" />
</BuildVersions>
最佳答案
我强烈建议使用免费的第三方 XmlTask图书馆:
build.xml
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask" />
<xmltask>
<fileset file="versionreferance.xml"/>
<copy path="/BuildVersions/property[@name = 'major']/@value" property="BuildVersions.major"/>
<copy path="/BuildVersions/property[@name = 'minor']/@value" property="BuildVersions.minor"/>
<copy path="/BuildVersions/property[@name = 'patch']/@value" property="BuildVersions.patch"/>
<copy path="/BuildVersions/property[@name = 'revision']/@value" property="BuildVersions.revision"/>
</xmltask>
<echo>Major : ${BuildVersions.major}</echo>
<echo>Minor : ${BuildVersions.minor}</echo>
<echo>Patch : ${BuildVersions.patch}</echo>
<echo>Revision : ${BuildVersions.revision}</echo>
输出
run:
[echo] Major : 1
[echo] Minor : 0
[echo] Patch : 0
[echo] Revision : 93
关于java - 将 xml 属性解析为 ant-build.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989460/