必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)

简介: 必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)

1、DOM4J对XML文件进行增删改操作


实现代码


1 package com.shore.code;


2


3 import java.io.File;


4 import java.io.FileOutputStream;


5 import java.io.IOException;


6


7 import org.dom4j.Attribute;


8 import org.dom4j.Document;


9 import org.dom4j.DocumentHelper;


10 import org.dom4j.Element;


11 import org.dom4j.io.OutputFormat;


12 import org.dom4j.io.SAXReader;


13 import org.dom4j.io.XMLWriter;


14 import org.junit.Test;


15


16 /*


17 @author DSHORE / 2018-9-3


18


19 /


20 /


21 修改xml内容


22 增加:文档,标签,属性


23 修改:属性值,文本


24 删除:标签,属性


25 /


26 public class Demo3 {


27 /


28 增加:文档,标签,属性


29 /


30 @Test


31 public void test1() throws IOException{


32 /


33 创建文档


34 /


35 Document doc=DocumentHelper.createDocument();


36 Element rootelem=doc.addElement("contactList");


37 Element contactElem=rootelem.addElement("contact");


38 Element nameEle = contactElem.addElement("name");


39 nameEle.addEntity("name", "张三");//添加实体内容


40 Element ageEle = contactElem.addElement("age");


41 ageEle.addComment("张三");//添加注释


42 /


43 增加属性


44 /


45 contactElem.addAttribute("id","001");


46 contactElem.addAttribute("name","zhangsan");


47 //1.创建输出流通道


48 FileOutputStream out=new FileOutputStream("F:/contact.xml");


49 //设置写入contact.xml文件的内容/标签格式(俗称:美观格式)


50 OutputFormat format=OutputFormat.createPrettyPrint();


51 //设置编码格式


52 format.setEncoding("utf-8");


53 //2.创建写出的对象,把修改后的Document对象写出到xml中


54 XMLWriter write=new XMLWriter(out,format);


55 //3.写出对象


56 write.write(doc);


57 //4.关闭资源


58 write.close();


59 }


60 /


61 修改:属性值,文本


62 /


63 @Test


64 public void test2() throws Exception{


65 //1.创建并读取一个Document对象


66 Document doc=new SAXReader().read(new File("./src/contact.xml"));


67 /


68 方案一:修改属性值 1.得到标签对象 2.得到属性对象 3.修改属性值


69 /


70 //2.得到标签对象


71 Element contatcElem=doc.getRootElement().element("contact");


72 //3.得到属性对象


73 Attribute idAttr=contatcElem.attribute("id");


74 //4.修改属性值


75 idAttr.setValue("005");


76 /


77 方案二:修改属性值


78 /


79 //2.得到标签对象


80 Element contatcElem2=doc.getRootElement().element("contact");


81 //3.通过增加同名的属性的方法,修改属性值


82 contatcElem2.addAttribute("id","006");


83 /


84 修改文本: 1.得到标签 2.修改文本


85 /


86 Element nameElement=doc.getRootElement().element("contact").element("name");


87 nameElement.setText("王五");


88 //1.创建输出流通道


89 FileOutputStream out=new FileOutputStream("F:/contact.xml");


90 OutputFormat format=OutputFormat.createPrettyPrint();//设置contact.xml文件格式(俗称:美观格式)


91 format.setEncoding("utf-8");//设置编码格式


92 //2.创建写出的对象


93 XMLWriter write=new XMLWriter(out,format);


94 //3.写出对象


95 write.write(doc);


96 //4.关闭资源


97 write.close();


98 }


99 /


100 删除:标签,属性


101 /


102 @Test


103 public void test3() throws Exception{


104 Document doc=new SAXReader().read(new File("./src/contact.xml"));


105 /


106 删除标签: 1.得到标签 2.删除标签对象

//代码效果参考:http://hnjlyzjd.com/xl/wz_25316.html


107 /


108 //得到标签


109 Element ageElement=doc.getRootElement().element("contact").element("age");


110 //删除标签对象


111 //ageElement.detach();


112 ageElement.getParent().remove(ageElement);//和上面的效果是一样的


113 /


114 2.删除属性 1.得到属性对象 2.删除属性


115 */


116 //得到属性对象


117 //得到第二个contact标签


118 Element contactElement=(Element)doc.getRootElement().elements().get(1);//get()里面填0代表第一个contact标签,填1代表第二contact标签。相当于数组的下标


119 //得到属性对象


120 Attribute idAttribute=contactElement.attribute("id");


121 //代码效果参考:http://hnjlyzjd.com/xl/wz_25314.html

//删除属性

122 idAttribute.detach();


123 //idAttribute.getParent().remove(idAttribute);//和上面的效果是一样的


124 FileOutputStream out=new FileOutputStream("F:/contact.xml");


125 OutputFormat format=OutputFormat.createPrettyPrint();


126 format.setEncoding("utf-8");


127 XMLWriter write=new XMLWriter(out,format);


128 write.write(doc);


129 write.close();


130 }


131 }


源文档(contact.xml)


1 <?xml version="1.0" encoding="utf-8"?>


2 [/span>contactList

3 [/span>contact id="001" sex="男"

4 [/span>name

5 [/span>age

6 [/span>phone

9 [/span>abc

10 [/span>a

11

12

13 [/span>contact id="038"

14 [/span>name

15 [/span>age

16 [/span>phone

19

20

效果图


原文出自:


欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!)

相关文章
|
2天前
|
安全 Java Apache
Java中的数据安全与隐私保护技术
Java中的数据安全与隐私保护技术
|
2天前
|
存储 缓存 NoSQL
Java中的内存数据库与缓存技术
Java中的内存数据库与缓存技术
|
2天前
|
存储 算法 安全
实现Java应用的数据加密与解密技术
实现Java应用的数据加密与解密技术
|
2天前
|
存储 安全 算法
Java中的数据加密与数字签名技术
Java中的数据加密与数字签名技术
|
2天前
|
监控 网络协议 Java
Java中的WebSocket实时通信技术详解
Java中的WebSocket实时通信技术详解
|
2天前
|
分布式计算 Java Apache
Java中的RPC远程过程调用技术详解
Java中的RPC远程过程调用技术详解
|
2天前
|
存储 分布式计算 大数据
Java中的大数据处理与分析技术
Java中的大数据处理与分析技术
|
12天前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
11 0
|
12天前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
14 0
|
7天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件