1

可能重复:
在 Ant 中传递分号作为参数

我必须XE从这个 xml 属性标签中读取它

<databases key="Test" type=".configdb">
      <dbname>test</dbname>
      <driver type=".dbdriver">
        <attributes>localhost;1521;XE;false</attributes>
        <driverType>Oracle thin</driverType>
      </driver>
      <password>965449DE3DB045FE</password>
      <user>test</user>
    </databases>

用蚂蚁脚本。

看到很多想法;但似乎所有的路径都很长,甚至没有到达确切的目的地。

提前致谢。

4

1 回答 1

2

假设您在某些resource.xml. 您可以XE通过使用scriptdef片段来解析 Ant 的 javascript 引擎。

构建.xml

<target name="something" ...
...
  <scriptdef language="javascript" name="split">
    <attribute name="input"/>
    <attribute name="output"/>
    values = attributes.get("input");
    project.setProperty(attributes.get("output"), values.split(";")[2]);
  </scriptdef>

  <xmlproperty file="resource.xml"/>
  <echo message="Original: ${databases.driver.attributes}"/>
  <split input="${databases.driver.attributes}" output="result" />
  <echo message="Split: ${result}"/>
...
</target>


运行此任务时,您将获得:

something:
[xmlproperty] Loading /home/code/resource.xml
     [echo] Original: localhost;1521;XE;false
     [echo] Split: XE
于 2012-08-23T11:49:15.943 回答