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文件

//把创建的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");


结果如下:





方案二:


//修改属性值第一个id改为“004”
//Element contEle2 = doc.getRootElement().element("contact"); //得到属性对象
//contEle2.addAttribute("id", "004");






b.修改文本


// 修改文本 1得到标签,2修改文本 将第一个name值修改为张飞
Element nameEle = doc.getRootElement().element("contact").element("name");
nameEle.setText("张飞");





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);//获得该标签的父标签,然后在删除其子标签






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);






欢迎大家互相学习,互相伤害!







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值