我只想尝试从现有文件中复制一个节点并将其粘贴到另一个文件中。没有什么花哨。我也有一些代码插入节点,看看我是否可以做到这一点,但我失败了相当光荣:)任何帮助将不胜感激
基本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>
答案 0 :(得分:3)
我弄清楚问题是什么。问题是我在xmltask中设置输出文件,在insert节点中设置file属性。 insert节点中的file属性是指您希望将整个xml文件插入xmltask的destination属性。
未经测试的代码,但现在应该可以使用这样的代码:
<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>