Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中从XML文件中删除节点_Java_Xml_Dom - Fatal编程技术网

在Java中从XML文件中删除节点

在Java中从XML文件中删除节点,java,xml,dom,Java,Xml,Dom,我有一个XML文件,格式如下: <state> <image> <imageUrl>./testImages/testimage.png</imageUrl> <perspective id="0"> <zoomLevel>1.0</zoomLevel> <offsetX>0.0</offsetX> &

我有一个XML文件,格式如下:

<state>
  <image>
      <imageUrl>./testImages/testimage.png</imageUrl>
      <perspective id="0">
          <zoomLevel>1.0</zoomLevel>
          <offsetX>0.0</offsetX>
          <offsetY>0.0</offsetY>
      </perspective>
      <perspective id="1">
          <zoomLevel>1.0</zoomLevel>
          <offsetX>0.0</offsetX>
          <offsetY>0.0</offsetY>
      </perspective>
  </image>
</state>
“rootElement.removeChild(image);”行引发以下异常:

org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
这很奇怪,因为如果我打印“rootElement”,它会显示“state”,这是图像的父节点

然后我尝试了以下行(“image.getParentNode().removeChild(image))。这一行不会引发异常,但也不会删除任何内容


如果我打印那一行,它也会说父节点是“state”,所以我甚至不知道这两行之间的区别是什么。

听起来您正在为该文档使用两个DOM副本,
doc
用于一个副本,
image
来自另一个副本。您不显示负责设置
doc
image
的代码,但您需要确保它们来自同一个节点树。

您能否生成一个简短但完整的程序(理想情况下是一个控制台应用程序)来演示问题?@Jon Skeet我下次会记住这一点,我认为这段代码足以说明问题所在,但特德·霍普的答案证明了并非如此,因为我的错误不在其中。无论如何谢谢你!你说得对。经过一些测试后,我忘记将引用更改回同一文档。谢谢
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.