用Ant替换XML中的值

时间:2013-11-07 02:18:52

标签: xml ant xml-parsing

我有一个xml文件,格式为:

<ofbiz-component name="catalina">
  <container name="catalina-container" loaders="main">
    <property name="ajp-connector" value="connector">
      <property name="port" value="8010"/>
    </property>
    <property name="http-connector" value="connector">
      <property name="port" value="8081"/>
    </property>
    <property name="https-connector" value="connector">
      <property name="port" value="8411"/>
    </property>
  </container>  
</ofbiz-component>

我想替换每个<property name="port"标签中的端口值,我尝试过使用beanshell,groovy,...但我必须使用标准的ant(没有beanshell,没有javascript,没有groovy)。< / p>

任何想法都表示赞赏: - )

1 个答案:

答案 0 :(得分:4)

您可以制作XML文件的模板:

<ofbiz-component name="catalina">
  <container name="catalina-container" loaders="main">
    <property name="ajp-connector" value="connector">
      <property name="port" value="@ajp-port@"/>
    </property>
    <property name="http-connector" value="connector">
      <property name="port" value="@http-port@"/>
    </property>
    <property name="https-connector" value="connector">
      <property name="port" value="@https-port@"/>
    </property>
  </container>  
</ofbiz-component>

然后使用replace ant task

<replace file="fname.xml" token="@ajp-port@" value="8010"/>
<replace file="fname.xml" token="@http-port@" value="8081"/>
<replace file="fname.xml" token="@https-port@" value="8411"/>