Mav*_*ick 2 java xml parent-child jdom
我有一个 xml 结构如下:
<rurl modify="0" children="yes" index="8" name="R-URL">
<status>enabled</status>
<rurl-link priority="3">http</rurl-link>
<rurl-link priority="5">http://localhost:80</rurl-link>
<rurl-link priority="4">abc</rurl-link>
<rurl-link priority="3">b</rurl-link>
<rurl-link priority="2">a</rurl-link>
<rurl-link priority="1">newlinkkkkkkk</rurl-link>
</rurl>
Run Code Online (Sandbox Code Playgroud)
现在,我想删除一个子节点,其中 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();
}
Run Code Online (Sandbox Code Playgroud)
但它并没有完全从 xml 文件中删除子元素。它留给我
<rurl-link/>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
你需要这样做:
List<Element> elements = new ArrayList<Element>();
while (subchilditr.hasNext()) {
Element subchild = (Element) subchilditr.next();
if (subchild.getText().equalsIgnoreCase(text)) {
elements.add(subchild);
}
}
for (Element element : elements) {
element.getParent().removeContent(element);
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试删除循环内的元素,您将得到一个ConcurrentModificationException.
| 归档时间: |
|
| 查看次数: |
5180 次 |
| 最近记录: |