我只是想从现有文件复制一个节点并将其粘贴到另一个文件中。没有什么幻想。我也有一些代码来插入节点,看看我是否能让它做到这一点,但我失败了相当光荣:)任何帮助将非常感谢
基本XML文件:(input.xml)
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>
<tests>
<test id="1"/>
<test id="2"/>
</tests>
</bar>
</foo>
我正在运行的蚂蚁目标:
<target name="copy">
<xmltask source="input.xml" dest="1.xml">
<copy path="/foo/bar/tests/test[@id='1']" buffer="storedXml" />
</xmltask>
</target>
<target name="paste-xml" depends="define-tasks,copy">
<xmltask source="input.xml" dest="output.xml">
<insert path="/foo/bar/tests/test[last()]" file="output.xml" buffer="storedXml"/>
</xmltask>
</target>
<target name="insert-xml" depends="define-tasks">
<xmltask source="input.xml" dest="output.xml">
<insert path="/foo/bar/tests/test[last()]" file="output.xml">
<![CDATA[
<test id="3"/>
]]>
</insert>
</xmltask>
</target>
<target name="write-config" depends="define-tasks">
<delete file="output.xml" failonerror="false"/>
<echoxml file="output.xml">
<foo>
<bar>
<tests/>
</bar>
</foo>
</echoxml>
</target>
我知道问题是什么了。问题是我在xmltask中设置输出文件,在插入节点中设置文件属性。当您想要将整个xml文件插入xmltask的目标属性时,插入节点中的file属性。
未测试代码,但现在应该可以工作了:
<target name="paste-xml" depends="define-tasks,copy">
<xmltask source="input.xml" dest="output.xml">
<insert path="/foo/bar/tests/test[last()]" buffer="storedXml"/>
</xmltask>
</target>
<target name="insert-xml" depends="define-tasks">
<xmltask source="input.xml" dest="output.xml">
<insert path="/foo/bar/tests/test[last()]">
<![CDATA[
<test id="3"/>
]]>
</insert>
</xmltask>
</target>