Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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中使用ArrayList删除节点_Java_Xml_Dom - Fatal编程技术网

在java中使用ArrayList删除节点

在java中使用ArrayList删除节点,java,xml,dom,Java,Xml,Dom,我有一个方法可以检索XML文件的所有节点,我需要删除某个节点(不知道其名称、父节点或任何内容)。我所拥有的只是包含“Ex2.xml”中所有节点的ArrayList,但当我尝试使用以下方法删除该节点时,该节点仍显示在xml文件中: BN2.get(5.getParentNode().removeChild(BN2.get(5)) 注意:BN2是包含节点的ArrayList File xmlFile = new File("Ex2.xml"); DocumentBuilderFactory dbFa

我有一个方法可以检索XML文件的所有节点,我需要删除某个节点(不知道其名称、父节点或任何内容)。我所拥有的只是包含“Ex2.xml”中所有节点的
ArrayList
,但当我尝试使用以下方法删除该节点时,该节点仍显示在xml文件中:

BN2.get(5.getParentNode().removeChild(BN2.get(5))

注意:BN2是包含节点的
ArrayList

File xmlFile = new File("Ex2.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();

BN2.get(5).getParentNode().removeChild(BN2.get(5));

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();

DOMSource domSource = new DOMSource(doc);

StreamResult streamResult = new StreamResult(new File("Ex2.xml"));

transformer.transform(domSource, streamResult);
XmL文件:虽然在此处编写,但未显示

<a>
  <b>
    <s>
        <e>AAA</e>
        <e>BBB</e>
        <e>CCC</e>
    </s>
    <d>
        <v>whatever</v>
        <f>
        </f>
    </d>
</b>

AAA
BBB
CCC
无论什么

您正在读取
doc
变量中的文件,从完全不相关的列表中删除一些元素
BN2
,然后将文档写入该文件。为什么会从文档中删除任何内容。
BN2
来自哪里?您可以添加填充BN2的代码吗?可能是xml的一个摘录?BN2由一个使用相同xml文件的类填充,这里是xml文件@AbbéRésina JB,问题是如果我需要从xml文件中删除一个我不知道的节点