编写xml配置⽂件_XML⼊门级
@
5.1 DOM4J解析xml⽂件
5.1.1 导⼊dom4j的jar包
5.1.2 DOM4J常⽤的对象
5.1.3 DOM4J使⽤步骤:
5.1.4 DOM4J使⽤实例:
5.2 SAX解析xml⽂件
5.2.1 SAX解析⽅式
5.2.2 SAX执⾏过程
5.2.3 SAX优点
5.2.4 SAX解析四部曲
5.2.5 实例:获取person⽂件并原样打出
1.什么是XML?
XML 指可扩展标记语⾔(eXtensible Markup Language),就是开发者可以在符合XML命名规则的基础之上,可以根据⾃⼰的需求定义⾃⼰的标签;
2.XML是怎么来的?
在这⾥插⼊图⽚描述
3.和HTML的对⽐:
HTML XML
作⽤显⽰数据传输和存储数据
语法⽆特殊要求要求嵌套、配对,并遵循DTD的树形结构
空格多个时只显⽰⼀个输⼊⼏个i显⽰⼏个
与数据库的关系⽆直接联系与关系型和层状数据库均可对应与转换
HTML XML
⼤⼩写敏感性不区分区分
4.XML的作⽤是什么?
XML主要作⽤是⽤来存储数据(可以理解为充当⼀个⼩型数据库)
传输约定格式的⽂件
做软件的配置⽂件,【配置⽂件,保存软件设置的⽂件】
5.解析XML⽂件的⽅法:
DOM
DOM4J
SAX
5.1 DOM4J解析xml⽂件
DOM4J是对DOM⽅法进⾏了封装,dom解析的⽅式⾮常繁琐 !所以这⾥只说DOM4J⽅式
5.1.1 导⼊dom4j的jar包
<dependency>
<groupId>dom4jgroupId>
<artifactId>dom4jartifactId>
<version>1.6.1version>
dependency>
5.1.2 DOM4J常⽤的对象
SAXReader(解析器):读取xml⽂件到Document树结构⽂件对象
Document:是⼀个xml⽂档对象树,类⽐ Html⽂档对象。
Element:元素节点。通过Document对象可以查单个元素
5.1.3 DOM4J使⽤步骤:
1.创建解析器
SAXReader saxReader = new SAXReader();
2.通过解析器的read()⽅法将配置⽂件读取到配置⽂件中  ⽣成⼀个document[org.dom4j]对象树
Document document = ad("F:\\ideaFile\\endfile\\src\\main\\resources\\l");
3.获取根节点
Element root = RootElement();
4.通过iterator遍历根节点root来获取⼦节点student
这部分代打看下⾯实例!
5.1.4 DOM4J使⽤实例:
前提是你有⼀个xml⽂件 !
<?xml  version="1.0" encoding="UTF-8"?>
<students>
<student>
<name>张安name>
<age>18age>
<sex>男sex>
student>
<student>
<name>李四name>
<age>12age>
<sex>⼥sex>
student>
<student>
<name>我想回家name>
<age>12age>
<sex>⼥sex>
student>
<student>
<name>王五name>
<age>89age>
<sex>男sex>
student>
students>
⽂件位置 :编写解析xml的class类 :
package com.buba.Dom4J;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.util.Iterator;
public class dom4j {
public static void main(String[] args) {
try {
//创建解析器
SAXReader saxReader = new SAXReader();
//通过解析器的read()⽅法将配置⽂件读取到配置⽂件中⽣成⼀个document[org.dom4j]对象树
Document document = ad("F:\\ideaFile\\endfile\\src\\main\\resources\\l");
/
/获取根节点
Element root = RootElement();
//开始遍历根节点
for (Iterator iterator = root.elementIterator();iterator.hasNext();) {
Element stuelement = ();for (Iterator innerIter = stuelement.elementIterator();innerIter.hasNext();){
Element next = ();
String stringValue = StringValue();
System.out.println(stringValue);
}
System.out.println("==========================================");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
部分输出结果
5.2 SAX解析xml⽂件
SAX(Simple API for XML) 是⼀种XML解析的替代⽅法。相⽐于DOM,SAX是⼀种速度更快,更有效的⽅法。它逐⾏扫描⽂档,⼀
边扫描⼀边解析。⽽且相⽐于DOM,SAX可以在解析⽂档的任意时刻停⽌解析,但任何事物都有其相反的⼀⾯,对于SAX来说就是操作复杂。  --- 百度百科
5.2.1 SAX解析⽅式
事件驱动,边读边写
5.2.2 SAX执⾏过程使用dom4j解析xml文件
在这⾥插⼊图⽚描述
5.2.3 SAX优点
⽆需将整个⽂档加载到内存中,所以内存消耗少,适合解析特别⼤的XML⽂件
5.2.4 SAX解析四部曲
(1) 创建解析⼯⼚,通过newInstance()⽅法获取
SAXParserFactory saxParserFactory = wInstance();
(2) 创建解析器
SAXParser saxParser = wSAXParser();
(3) 调⽤解析器parser⽅法,传⼊两个参数:xml⽂件路径,时间处理器
saxParser.parse("F:\\**resources\\l",new MyDeafultHander());
(4) 创建⼀个类,继承DefaultHander类,重写三个⽅法:
A、startElement 获取开始标签,重要的两个参数说明
a、qName:把标签名称返回
b、attributes:返回标签中的属性对象
B、character 获取标签⽂本内容
C、endElement 获取结束标签

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。