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>
是否知道如何将值从一个节点复制到下一个节点中的所有元素?
答案 0 :(得分:0)
我想,通常就是这样,写我自己的任务是我能看到的唯一方法。
@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.*" />