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.*" />