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 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号