替换xml文件中的节点时出现xmltask错误

时间:2015-11-13 01:00:50

标签: ant xmltask

我在将目标replace运行到xmltask时遇到错误:

C:\Tools\build.xml:432: The following error occurred while executing this line:
C:\Tools\build.xml:408: Failed to specify text in replace

问题是我的同事在他的计算机上运行相同的代码没有问题。我无法弄清楚为什么在我的同事没有这个错误时我得到错误。

build.xml的部分如下:

<target name="replace" depends="init" description="replace node.">

    <xmltask source="${my-file}" dest="${my-file}"> 

        <replace path=
            "/*[local-name()='server']
              /*[local-name()='profile']
               /*[local-name() = 'subsystem'][1]" 
        withFile="${devlogfile}"/> 

    </xmltask>
</target>

<target name="init">
    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="${ant.lib.dir}/ant-contrib-1.0b3.jar"/>
        </classpath>
    </taskdef>
    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask">
        <classpath>
            <pathelement path="${ant.lib.dir}/xmltask.jar"/>
        </classpath>
    </taskdef>
</target>

属性文件的部分如下:

my-file=c:/old.xml
devlogfile=c:/new.xml

1 个答案:

答案 0 :(得分:1)

[从评论部分转换]

在您的同事和您自己的情况下,您是否比较了jdk和classpath?到目前为止,我们无法确定所提供的信息,但您可能正在使用不同的解析器。

错误消息表明Ant未找到devlogfile文件本身。 您确定属性文件是否正确传递到您的ant运行时?你是怎么过去的?