Dom4j增加,修改,删除XML文件

一.如何配置Dom4j

xml解析: 点击查看

二.修改项目类内容

  • 1.)增加:文档,标签,属性
  • 2.)修改:属性值,文本
  • 3.)删除:标签,属性
1.)增加:文档,标签,属性
a.创建文本write.xml
//创建文本
       Document doc = DocumentHelper.createDocument();
b.创建标签
// 创建标签
        Element rootElem=doc.addElement("contactList");//创建根标签
        Element contElem = rootElem.addElement("cotact");创建子标签
        contElem.addAttribute("id","001");//增加属性
        Element nameElme = contElem.addElement("name");//增加子标签
        nameElme.addText("张三");//添加姓名
        rootElem.addElement("cotact");//添加标签
c.把创建的Document对象写到xml文件
//3把创建的Document对象写到xml文件
        //指定文件输出位置
        FileOutputStream out = new FileOutputStream("./src/write.xml");
        //OutputFormat format = OutputFormat.createCompactFormat();//生成物理文件,布局较乱适合电脑
        OutputFormat format = OutputFormat.createPrettyPrint();//标准化布局,适合查看时显示。
        //1.创建写入文件
        format.setEncoding("utf-8");//指定文件格式 
        XMLWriter writer = new XMLWriter(out,format);
        writer.write(doc);//写入文件
        System.out.println("写入成功");
        writer.close();

结果如下:

增加:文本,标签,属性
2.)修改:属性值,文本
注意:修改xml源文件one.xml;将修改的内容写入write.xml
<?xml version="1.0" encoding="UTF-8"?>
<contactList>
    <contact id="1">
        <name>某某</name>
        <age>20</age>
        <phone>15426354785</phone>
        <qq>1024557455</qq>
    </contact>
    <contact id="2">
        <name>张三</name>
        <age>44</age>
        <phone>17854213658</phone>
        <qq>1024532584</qq>
    </contact>
</contactList>
a.修改属性值

方案一:

//修改属性值第一个id改为“003”
        Document doc = new SAXReader().read("./src/one.xml");//得到标签对象
        Element contEle = doc.getRootElement().element("contact");//得到属性对象
        Attribute idAtt = contEle.attribute("id");
        idAtt.setValue("003");
方案一:修改xml源文件one.xml;将修改的内容写入write.xml

方案二:

//修改属性值第一个id改为“004”
        //Element contEle2 = doc.getRootElement().element("contact");   //得到属性对象
        //contEle2.addAttribute("id", "004");
方案二:修改xml源文件one.xml;将修改的内容写入write.xml
b.修改文本
// 修改文本  1得到标签,2修改文本 将第一个name值修改为张飞
        Element nameEle = doc.getRootElement().element("contact").element("name");
        nameEle.setText("张飞");
修改文本将第一个name值修改为张飞
3.)删除:标签,属性
注意:删除xml源文件one.xml内容;将删除后的内容写入write.xml
<?xml version="1.0" encoding="UTF-8"?>
<contactList>
    <contact id="1">
        <name>某某</name>
        <age>20</age>
        <phone>15426354785</phone>
        <qq>1024557455</qq>
    </contact>
    <contact id="2">
        <name>张三</name>
        <age>44</age>
        <phone>17854213658</phone>
        <qq>1024532584</qq>
    </contact>
</contactList>
a.删除标签

方案一:

//删除第一个age标签
    Element agename = doc.getRootElement().element("contact").element("age");//1.得到标签
    agename.detach();//删除标签

方案二:

//删除第一个age标签
    Element agename = doc.getRootElement().element("contact").element("age");//1.得到标签
   agename.getParent().remove(agename);//获得该标签的父标签,然后在删除其子标签
删除第一个age标签
b.删除属性

方案一:

//删除第2个id
   Element contEle = (Element) doc.getRootElement().elements().get(1);
   //得到属性对象
   Attribute idatt= contEle.attribute("id");
   //方法一
   idatt.detach();//删除属性

方案二:

//删除第2个id属性
  Element contEle = (Element) doc.getRootElement().elements().get(1);
  //得到属性对象
  Attribute idatt= contEle.attribute("id");
  idatt.getParent().remove(idatt);
删除第2个id属性
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,801评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,250评论 18 399
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 8,676评论 1 41
  • 1. 前天,女儿所在的幼儿园开学,并且当天上午还举行防拐、防骗亲子培训,所以我干脆请了半天假。一大早,就开车带着女...
    小乐爸爸阅读 10,882评论 22 158
  • 一、辣个惊为天人的纳尔 15年年初的时候,我第一次接触英雄联盟。当时还对这款游戏所知甚少,所以也并没有觉得,lol...
    _岚青竹阅读 5,185评论 15 8

友情链接更多精彩内容