Ant XMLTask不能在现有xml文件中插入新的xml节点



我只是想从现有文件复制一个节点并将其粘贴到另一个文件中。没有什么幻想。我也有一些代码来插入节点,看看我是否能让它做到这一点,但我失败了相当光荣:)任何帮助将非常感谢

基本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>

相关内容

  • 没有找到相关文章

最新更新