使用xmltask将一个值复制到另一个值



xml任务是否可以将列表中每个元素的一个节点的值复制到另一个节点?

源XML:

<a>
 <b>
   <c1>foo</c1>
   <c2></c2>
 </b>
 <b>
   <c1>bar</c1>
   <c2></c2>
 </b>
 ...
</a>

目标XML:

<a>
 <b>
   <c1>foo</c1>
   <c2>foo</c2>
 </b>
 <b>
   <c1>bar</c1>
   <c2>bar</c2>
 </b>
 ...
</a>

我正试图在蚂蚁任务中完成上述任务,但我似乎找不到方法,以下是我目前正在做的,

<target name="mergefile">       
    <!-- Read the source into a buffer -->
    <xmltask source="source.xml" clearBuffers="list"> 
        <copy path="/a" buffer="list" append="true"/> 
    </xmltask>
    <!-- Write them to the output -->
    <xmltask source="destination.xml" dest="destination.xml"
        outputter="simple">
        <!-- First clear all the old paths. -->
        <remove path="/a/b"/> 
    <!-- Then add the resolved ones. -->
        <paste path="/a" buffer="list"></paste>
            <!-- Copy the value over? -->
        <replace path="a/b/c2/text()" withText="No Idea"/>
    </xmltask>
</target>

知道如何将列表中所有元素的值从一个节点复制到下一个节点吗?

我想,通常情况下,编写自己的任务是我能看到的唯一方法

@Override
public void execute() throws BuildException {
   //Read file line by line, regex test on each line, 
   //matches get written back twice.
}

然后称之为

<copyregmatch file="myfile.xml" regex=".*replace.*" />

相关内容

  • 没有找到相关文章

最新更新