我只是尝试从现有文件中复制一个节点,并将其粘贴到另一个文件中。没什么花哨的。我也有一些代码来插入节点,看看是否可以让它这样做,但我失败了:)任何帮助都将不胜感激
基本XML文件:(input.xml)
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<bar>
<tests>
<test id="1"/>
<test id="2"/>
</tests>
</bar>
</foo>我正在运行的ant目标:
<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>发布于 2011-12-31 13:40:19
我知道问题出在哪里了。问题是我在xmltask中设置了输出文件,在insert节点中设置了file属性。当您想要将整个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>https://stackoverflow.com/questions/8677324
复制相似问题