Java 删除xml文件中的数据无法正常工作
我正在开发一个XML编辑器,当用户单击某个类型上的delete时,应用程序将删除整个类型。 但这不仅仅是删除内容,而是留下标签Java 删除xml文件中的数据无法正常工作,java,xml,Java,Xml,我正在开发一个XML编辑器,当用户单击某个类型上的delete时,应用程序将删除整个类型。 但这不仅仅是删除内容,而是留下标签 <type> <OBJECT_TYPE/> <prop/> <param/> <param/> <param/> <param/> <param/> <param/> <param/> <param/> <param/> <
<type>
<OBJECT_TYPE/>
<prop/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
<param/>
</type>
<type>
<OBJECT_TYPE/>
<prop/>
<param/>
<param/>
<param/>
</type>
<type>
<OBJECT_TYPE/>
<prop/>
<param/>
<param/>
</type>
所以基本上所有的数据都消失了,但它留下了这些标签,我也想对它们进行深入研究。
怎么做
我的代码:
NodeList type = (NodeList) doc.getElementsByTagName("type").item(x);
System.out.println("type : " + type);
for (int i = 0; i < type.getLength(); i++) {
Node curNode = (Node) type.item(i);
System.out.println(" Node name : " + curNode.getChildNodes());
removeChilds(curNode);
}
// Save the new update
save(doc);
public static void removeChilds(Node node) {
while (node.hasChildNodes())
node.removeChild(node.getFirstChild());
}
NodeList type=(NodeList)doc.getElementsByTagName(“type”).item(x);
System.out.println(“类型:“+type”);
对于(int i=0;i
我认为您在DOM树导航中做得不对。项
已经为
标记返回了一个节点
。您只需删除它:
Node type = doc.getElementsByTagName("type").item(x);
type.getParentNode().removeChild(type);
这就是您在代码中所做的-您正在将节点
强制转换为节点列表
(xml元素也是子节点列表),因此您的for
循环将迭代
的子节点。然后在每个子项中(例如示例中的prop
和param
)再次迭代子项并删除每个子项。因此,您永远不会删除类型
节点