如何在java中使用jdom从节点中删除子节点?
我有一个xml结构如下:
enabled http http://localhost:80 abc b a newlinkkkkkkk
现在,我想删除一个子节点,其中text等于http。 目前我正在使用此代码:
while(subchilditr.hasNext()){ Element subchild = (Element)subchilditr.next(); if (subchild.getText().equalsIgnoreCase(text)) { message = subchild.getText(); update = "Success"; subchild.removeAttribute("priority"); subchild.removeContent(); }
但它并没有从xml文件中完全删除子元素。 它离开了我
有什么建议?
你需要这样做:
List elements = new ArrayList (); while (subchilditr.hasNext()) { Element subchild = (Element) subchilditr.next(); if (subchild.getText().equalsIgnoreCase(text)) { elements.add(subchild); } } for (Element element : elements) { element.getParent().removeContent(element); }
如果您尝试删除循环内的元素,您将获得ConcurrentModificationException
。
如果您有父元素rurl
,则可以使用removeChild或removeChildren方法删除其子元素。