删除问题

删除问题

老师,怎么通过节点去删除文本呢?比如

<catergory>

<categoryId>1</categoryId>

<categoryName>计算机类</categoryName>

</catergory>

怎么通过跟节点去删除categoryId这个节点的信息呢?

	/**
* 删除分类方法
* @param categoryId 根据id删除
*/
public static void deleteCatgory(String categoryId) {
//通过dom4j读取文件
SAXReader reader=new SAXReader();
Writer writer=null;
try {
Document document=reader.read(categoryDataFile);
//通过xpath 对文件中节点读取
List<Node> nodes=document.selectNodes("/root/catergory");
//通过遍历
Element p=null;
for(Node node:nodes) {
Element element=(Element)node;
if(element.element("categoryId").getText().equals(categoryId)) {
p=element;
break;
}
}
nodes.remove(p);
//写入
writer=new OutputStreamWriter(new FileOutputStream(categoryDataFile),"utf-8");
document.write(writer);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(writer!=null) {
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
reloadCategory();
}
}

为什么这样删除不了阿。每次都提示没有此id。好奇怪啊。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2021-04-08 17:17:54

同学你好,1、删除实现思路:

    ​在前端页面点击删除按钮时,获取该分类的id,将其传递给后台,在后台接收传递过来的id,循环遍历分类列表,如果分类id相同,则将其删除即可。

2、查看同学代码是可以实现删除的。

祝学习愉快!

  • 提问者 rock221 #1

    但是我的删不掉啊。 不知道为什么啊

    http://img1.sycdn.imooc.com//climg/606ecb3b0918ad7612720668.jpg

    2021-04-08 17:22:04
  • 好帮手慕小尤 回复 提问者 rock221 #2

    同学你好,1、同学尝试使用p.getParent().remove(p);删除数据试一下,如下图所示:

    http://img1.sycdn.imooc.com//climg/606ee0200959828c10110535.jpg

    2、关于没有找到id的异常,同学可参考最新问答(https://class.imooc.com/course/qadetail/284353  )。

    祝学习愉快!

    2021-04-08 18:58:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师