java - 将 xml 属性解析为 ant-build.xml 文件

标签 java xml ant xml-parsing antbuilder

我有一个 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/

相关文章:

javascript - 带有 onkeyup 事件的输入标签用于建议数据列表,不适用于键盘上/下箭头键

xml - 将 XML 转换为 VB.NET 字典

java - 使用 Ant 条件标记

java - 使用星号创建沙漏

java - 如何让 XSLT 在输出数值运算结果时停止使用科学记数法?

java - java登录未验证mysql数据库的访问权限

java - 集成 Espresso 和 Ant 时,APK 内同一路径中的文件重复

java - BTrace 的开销是多少

xml - XSLT 与 LaTeX

ant - mxmlc 和框架链接 - 如何将链接指定为 rsl