必知的技术知识: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

效果图


原文出自:


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

相关文章
|
7天前
|
XML JavaScript 数据格式
XML 相关技术
XML 相关技术
|
11天前
|
JSON 前端开发 JavaScript
java-ajax技术详解!!!
本文介绍了Ajax技术及其工作原理,包括其核心XMLHttpRequest对象的属性和方法。Ajax通过异步通信技术,实现在不重新加载整个页面的情况下更新部分网页内容。文章还详细描述了使用原生JavaScript实现Ajax的基本步骤,以及利用jQuery简化Ajax操作的方法。最后,介绍了JSON作为轻量级数据交换格式在Ajax应用中的使用,包括Java中JSON与对象的相互转换。
24 1
|
16天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
30 3
|
16天前
|
SQL 监控 Java
Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面
本文探讨了Java连接池技术的最新发展,包括高性能与低延迟、智能化管理与监控、扩展性与兼容性等方面。同时,结合最佳实践,介绍了如何选择合适的连接池库、合理配置参数、使用监控工具及优化数据库操作,以实现高效稳定的数据库访问。示例代码展示了如何使用HikariCP连接池。
10 2
|
18天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
25 4
|
16天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
16天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
31 1
|
18天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
37 2
|
1月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
57 1
|
3月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)