jdom 中removeContent的问题?

jainoo00oo 2008-10-10 09:12:00
代码如下:
<accounts>
<account>
<name>admin</name>
<password>admin</password>
<age>29</age>
<phone>4543545</phone>
</account>
<account>
<name>qq</name>
<password>qq</password>
<age>22</age>
<phone>4453454545</phone>
</account>
<accounts>



private Element init() throws Exception{

File file=new File(filePath);

SAXBuilder builder=new SAXBuilder();

Document doc=builder.build(file);

return doc.getRootElement();

}

private void save(Element root)throws Exception{

XMLOutputter out = new XMLOutputter(Format.getPrettyFormat().setEncoding("GB2312"));

FileWriter file = new FileWriter(filePath);
out.output(root, file);
out.output(root, System.out);

}





public void remove(String name)throws Exception{

//初始化得到跟元素
Element root=init();


List rootChildren= init().getChildren();
for(int i=0;i<rootChildren.size();i++){

Element e=(Element) rootChildren.get(i);

List eChildren =e.getChildren();
for(int j=0;j<eChildren.size();j++){
Element el=(Element)eChildren.get(j);

if(el.getName().equals("name")&&el.getValue().equals(name)){
boolean b=root.removeContent(e);
System.out.println(b);
break;
}
}
}


//保存成xml文件
save(root);
}




为什么removeContent总是返回false?
试了好多遍都不行,帮忙一下谢咯!
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
白云冰河 2008-10-13
  • 打赏
  • 举报
回复
真晕了,上面你都说了init() 两个对象,你的root!=e.getParentElement()
jainoo00oo 2008-10-12
  • 打赏
  • 举报
回复
谢谢拉,做出来了! 是这里有问题:


Element root=init();
List rootChildren= init().getChildren();

这样的话就init() 两个对象,用root 去移除 init().getChildren()肯定返回false

额! 汗....



还想问问:为什么改过之后
boolean b=e.getParentElement().removeContent(e);
可以
boolean b=root.removeContent(e);


还是返回false 呢?
liaoyi_ipanel 2008-10-10
  • 打赏
  • 举报
回复
帮顶~
白云冰河 2008-10-10
  • 打赏
  • 举报
回复
你把

boolean b=root.removeContent(e);

改成

boolean b=e.getParentElement().removeContent(e);


或者把
List rootChildren= init().getChildren(); 中的inti()改成root。
你干嘛要在remove里面调用两次init()

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧