dom4j删除节点

在网上经常会有人在百度知道中文,怎样使用Dom4j删除一个节点,其实我在前面几篇文章中已经讲解了,这里单点拿出来说一下,方便又需要的朋友参考。下面是我们要操作的XML文档结构

在网上经常会有人在百度知道中文,怎样使用Dom4j删除一个节点,其实我在前面几篇文章中已经讲解了,这里单点拿出来说一下,方便又需要的朋友参考。下面是我们要操作的XML文档结构,如下:

<?xml version="1.0" encoding="UTF-8" ?> 
<root>
    <node1 show="yes" name="sample" data="01">
          <title>Dom4j Tutorials</title> 
          <owner>O'Reilly</owner> 
          <node1-01 name="sample-01" date="01-01" /> 
          <node1-01 name="sample-02" date="01-02" /> 
          <node1-01 name="sample-03" date="01-03" /> 
          <node1-01 name="sample-04" date="01-04" /> 
          <node1-01 name="sample-05" date="01-05" /> 
      </node1>
  </root>

问题:

在上面的代码中如何根据节点的name 来删除节点啊,比如要删除name="sample-01"的节点,望高手赐教!

解答:

Document doc = DocumentHelper.createDocument();
Element scohool = doc.addElement("school");
scohool.addElement("teacher").addComment("this is a 优秀的老师").addAttribute("age","33").addAttribute("face","帅").setText("老吴");

Element ele = scohool.addElement("haha");
ele.addElement("node1-01").addAttribute("name", "11");
ele.addElement("node1-01").addAttribute("name", "12");
ele.addElement("node1-01").addAttribute("name", "13");
ele.addElement("node1-01").addAttribute("name", "14");
ele.addElement("node1-01").addAttribute("name", "15");

List list = ele.elements();
for (int i = 0; i < list.size(); i++) {
    Element e = (Element)list.get(i);
    String value = e.attributeValue("name",null);
    if("14".equals(value)){
        ele.remove(e);
    }
}

try {
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("GB2312");
    XMLWriter out = new XMLWriter(new FileOutputStream("e:/1.xml"),format);
    out.write(doc);
    out.close();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

上面是通过一个迭代,判断name为指定的值则将该元素删除掉,然后将修改后的文档输出到1.xml文档中。

人生就像赛跑,不在乎你是否第一个到达终点,而在乎你有没有跑完全程。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号