撩课-JavaWeb之xml解析DOM4J解析与Sax解析
2018-10-22 本文已影响51人
码蚁Q
学习地址:
撩课-JavaWeb系列1之基础语法-前端基础
撩课-JavaWeb系列2之XML
撩课-JavaWeb系列3之MySQL
撩课-JavaWeb系列4之JDBC
撩课-JavaWeb系列5之web服务器-idea
XML的树结构
文档结点
元素结点
属性结点
文本结点
什么是DOM
DOM:Document Object Model
文档对象模型
把文档中的成员描述成一个个对象.
使用Java代码操作
XML 或者 js代码操作HTML
DOM解析的特点
在加载的时候,
一次性的把整个XML文档加载
进内存,在内存中形成一颗树(Document对象).
以后使用代码操作Document,
其实操作的是内存中的DOM树,
和本地磁盘中的XML文件
没有直接关系.
由于操作的是内存当中的dom,
磁盘中xml当中的内容并没有变,
要进行同步,
让两边保持一致
查询不需要同步,
只有数据变化的时候,
才需要同步
缺点:
若XML文件过大,
可能造成内存溢出.
DOM解析步骤
1.创建解析器工厂
2.通过解析器工厂得到解析器
3.通过解析器得到document对象
4.获取具体的节点内容
![](https://img.haomeiwen.com/i577844/7789fc0a647e984c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/617)
DOM修改元素内容
1.获取所有指定节点
2.获取要修改的节点
3.修改元素内容
4.从内存写到文档做同步操作
DOM添加元素
1.创建一个节点
2.设置元素内容
3.获取要添加元素的父结点
4.添加节点
5.从内存写到文档做同步操作
DOM删除元素
1.获取一个节点
2.获取该节点的父节点,从父节点当中移除
3.从内存写到文档做同步操作
image.png
DOM添加元素属性
1.获取要添加属性的节点
2.把获取的节点强制转换成element
3.设置属性
4.从内存写到文档做同步操作
Sax解析介绍
逐行读取,基于事件驱动
优点:不占内存,速度快
缺点:只能读取,不能回写
解析流程:
DOM4j介绍
DOM4J是dom4j.org出品的一个开源XML解析包
dom4j是一个十分优秀的JavaXML API,
具有性能优异、
功能强大和极其易使用的特点,
它的性能超过sun公司官方的dom技术,
同时它也是一个开放源代码的软件
越来越多的Java软件都在使用dom4j来读写XML,
特别值得一提的是连Sun的JAXM也在用dom4j。
这已经是必须使用的jar包,
Hibernate也用它来读写配置文件。
dom4j解析步骤
下载Dom4j的jar包
在工程根目录当中创建一个文件夹为lib
编译jar包
创建SAXReader
读取指定路径的xml
获取所有指定标签内容
1.创建SAXReader
2.获取根元素
3.获取根元素下所有的元素
4.遍历每一个子元素
5.获取指定名称的元素
6.获取标签当中的文本
获取全部标签内容
1.创建SAXReader
2.获取根元素
3.获取根元素下所有的元素
4.遍历每一个子元素
添加元素
1.创建SAXReader
2.获取根元素
3.给根元素添加元素和属性,并返回添加的元素
如果你想要获取Xmind思维导图源件加群:869866610,进群可以获取以上技术的学习视频。