jdom 删除节点的问题

jiangtianyin 2010-10-29 10:52:13
第一次用Java来操作xml,我用的是jdom来操作,但是遇到些问题,请赐教。我的xml文件如下:
<?xml version="1.0" encoding="gb2312"?>
<AccountRecord>
<Record>
<account>10000012</account>
<password>jty1988</password>
<headImage>34.gif</headImage>
</Record>
<Record>
<account>10000008</account>
<password>jty1988</password>
<headImage>6.gif</headImage>
</Record>
<Record>
<account>10000003</account>
<password>jty1988</password>
<headImage>16.gif</headImage>
</Record>
</AccountRecord>
我的每一个<Record>节点对用程序中的一个User对象,我想根据<account>来删除相应的<Record>节点,首先我用
Element root=document.getRootElement();//获取根元素
然后
List recordList=root.getChildren("Record");//获取所有Record节点元素
Vector<User> userVector=new Vector<User>();
for(int i=0;i<recordList.size();i++){
Element record=(Element)recordList.get(i);
String account=record.getChildTextTrim("account");
String password=record.getChildTextTrim("password");
String headImage=record.getChildTextTrim("headImage");
User user=new User();
user.setUserAcount(account);
user.setHeadImage(headImage);
user.setPassWord(password);

userVector.add(user);
}
然后从userVector中查找具有指定account值的节点,获取节点的索引,然后通过root.removeContent(int index)方法来删除节点,
例如,我查找到account=10000008的节点的索引为1,然后用root.removeContent(1)去删除;但总是无法删除,不知道问题出在哪里,是removeContent()方法用错了还是xml文件和userVector中的索引不同

请问我该怎么删除account=xxxxx(例如:10000008)所对应的<Record>节点?顺便请各位帮我讲讲removeContent()和removeChild(),removeChildren()方法
...全文
163 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tubage408 2010-10-29
  • 打赏
  • 举报
回复
你说删除不掉是指从xml文件中删除不掉么?要是的话,我不知道你删除完成之后是否将document对象重新写入文件了(XMLOutputter
的output(Document doc, java.io.OutputStream out)
)。要写入了的话,你看看removeContent返回啥了,如果返不是null那证明的就删除掉了。

67,549

社区成员

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

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