学习地址:
撩课 - 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 解析步骤
创建解析器工厂
通过解析器工厂得到解析器
通过解析器得到 document 对象
获取具体的节点内容
![](https://upload-images.jianshu.io/upload_images/577844-7789fc0a647e984c.png?imageMogr2/auto-orient/strip|imageView2/2/w/617)
DOM 修改元素内容
获取所有指定节点
获取要修改的节点
修改元素内容
从内存写到文档做同步操作
DOM 添加元素
创建一个节点
设置元素内容
获取要添加元素的父结点
添加节点
从内存写到文档做同步操作
DOM 删除元素
获取一个节点
获取该节点的父节点, 从父节点当中移除
从内存写到文档做同步操作
image.PNG
DOM 添加元素属性
获取要添加属性的节点
把获取的节点强制转换成 element
设置属性
从内存写到文档做同步操作
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
获取所有指定标签内容
创建 SAXReader
获取根元素
获取根元素下所有的元素
遍历每一个子元素
获取指定名称的元素
获取标签当中的文本
获取全部标签内容
创建 SAXReader
获取根元素
获取根元素下所有的元素
遍历每一个子元素
添加元素
创建 SAXReader
获取根元素
给根元素添加元素和属性, 并返回添加的元素
来源: http://www.jianshu.com/p/bd3f396076cc