Java解析XML文件(DOM4J解析xml文件) 您所在的位置:网站首页 dom4j下载哪个版本 Java解析XML文件(DOM4J解析xml文件)

Java解析XML文件(DOM4J解析xml文件)

2023-07-06 03:09| 来源: 网络整理| 查看: 265

内容重点1:DOM4J创建、解析、修改XML文件

内容重点2:DOM4J模拟解析web.xml配置文件,实现实例化servlet

1、什么是xml

Xml(Extensible Markup  Language) 一种扩展性标示语言,出现的意义其实与JSON字符串的意义相似,是新一代的数据交换标准。

优势:一种结构化文档和通用且适应性强的格式,它不仅仅适用于web,而且可以被用于任何的地方。

本案例介绍DOM4J如何解析xml配置文件

2、常见的xml解析工具

DOM4J:是所有xml解析中综合性能最优的产品。是一个简单、灵活的开放源代码的库,具有性能优异、功能强大和极易使用的特点。

JDOM和DOM:基于树模型,在运行的时候会将xml文件中的所有内容都加入到内存中,对内存的消耗大。适用于小文档。当文档超过15M左右的时候会出现内存溢出。

SAX解析:基于事件驱动,表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。

3、通过DOM4J解析XML文件

3.1、创建一个标准的1.xml文件

在你自己系统中的任意地方创建一个1.xml文件,配置如下内容,xml格式是自定的,我使用的xml是具有代表性的一种格式,用于学习足够使用。

安徽合肥1 安徽合肥2 安徽合肥3 安徽合肥4 3.2、下载DOM4J的包

下载地址:dom4j

说明:此处可以根据自己的JDK版本下载对应的dom4j版本。我用的是JDK1.8所以下载

所以下载dom4j-2.1.4版本。

3.3、在工程中引入DOM4J的jar包

 3.4、读取特定的xml中的内容

getName():得到当前的元素名称

getText():得到元素中间的内容

attributeValue("sex"):得到元素对应的属性的值

【解析代码】

package com.it.test; import java.io.File; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class TestXMLParse { public static void main(String[] args) throws DocumentException { //创建核心解析器 SAXReader reader=new SAXReader(); File file=new File("C://aa//1.xml"); Document doc=reader.read(file); //得到xml的跟节点-既students Element root= doc.getRootElement(); //通过根节点得到所有子节点-既所有student List elements= root.elements(); //遍历得到所有的自己点的属性和值 for (Element eles:elements) { //attributeValue:得到指定属性的值 System.out.print("id的值=>"+eles.attributeValue("id")); System.out.print(",name的值=>"+eles.attributeValue("name")); //得到节点中间的值 System.out.println(",地址=>"+eles.getTextTrim()); } } }

【结果输出】

 4、将结果写入XML文件中

本案例中,我们创建一个集合,在集合中添加Student对象,模拟从数据库中查询数据。

4.1、写入后样式

students:为根元素

student:为子元素

id,name,sex,age,pwd:为元素属性

 4.2、导入lomok工具包

4.3、创建Student对象

创建对象,并设置set和get方法及构造器,案例中采用lomok注解生成,也可以手动添加。

@Setter //生成set方法 @Getter //生成get方法 @AllArgsConstructor //生成有参数构造器 @NoArgsConstructor //生成无参数构造器 public class Student { private String stu_id; private String stu_name; private String stu_sex; private String stu_age; private String stu_addr; private String stu_pwd; } 4.4、将集合写入到XML文件中 package com.it.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import com.it.bean.Student; public class TestWriterXML { public static void main(String[] args) throws IOException { //创建集合模拟数据库查询数据 List list=new ArrayList(); Student stu1=new Student("1001","陈平安","男","15","东宝瓶洲泥瓶巷","1001"); Student stu2=new Student("1002","王煊","男","25","旧星","1002"); Student stu3=new Student("1003","萧炎","男","35","乌坦城萧家","1003"); list.add(stu1); list.add(stu2); list.add(stu3); //创建Document对象-DOM4J写入XML中需要将list转化成Document Document doc=DocumentHelper.createDocument(); //向Document对象中添加根节点-XML最外层的元素节点 Element root= doc.addElement("students"); //向Document对象中添加数 for (int i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有