随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

一、XML 解析概念

解析:XML 解析是指通过解析器操作 xml 文档,解释语法,并将文档转化为对象,能够将文档中的数据读取到内存中;

操作 xml 文档:

(1)解析(读取):将文档中的数据读取到内存中

(2)写入:将内存中的数据保存到 xml 文档中,持久化数据。

二、XML 解析技术

Java 平台同时提供了 DOM(Document Object Model)和 SAX(Simple API for XML)两种技术。

XML 解析技术体系图:

早期 JDK 为我们提供了两种 xml 解析技术 DOM 和 Sax 简介(已经过时, 但我们需要知道这两种技术)

dom 解析技术是 W3C 组织制定的, 而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。

Java 对 dom 技术解析标记也做了实现。

sun 公司在 JDK5 版本对 dom 解析技术进行升级: SAX( Simple API for XML )

SAX 解析, 它跟 W3C 制定的解析不太一样。 它是以类似事件机制通过回调告诉用户当前正在解析的内容。

它是一行一行的读取 xml 文件进行解析的。 不会创建大量的 dom 对象。

所以它在解析 xml 的时候, 在内存的使用上。 和性能上。 都优于 Dom 解析。

第三方的解析:

jdom 在 dom 基础上进行了封装 、dom4j 又对 jdom 进行了封装。

pull 主要用在 Android 手机开发, 是在跟 sax 非常类似都是事件机制解析 xml 文件。

这个 Dom4j 它是第三方的解析技术。 我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。

DOM 和 SAX 对比:

1、DOM

DOM:将标记语言文档一次性加载进内存,在内存中形成一颗 DOM 树(一般在服务器端)

优点:操作方便,可以对文档进行 CRUD 的所有操作

缺点:占用内存

dom 解析技术是 W3C 组织规定的,而所有的编程语言都会这个解析技术使用了自己语言的特点进行实现。

2、SAX

SAX:逐行读取,基于事件驱动的。(一般在移动端)

优点:不占内存

缺点:只能读取,不能增删改

sun 公司在 JDK5 对 dom 解析技术进行升级:SAX。

SAX 解析,它是类似事件机制通过回调告诉用户当前正在解析的内容,它是一行一行的读取 xml 文件进行解析的,不会创建大量的 dom 对象,所以在内存好性能上,都优于 DOM 解析。

三、XML 常见的解析器

1、JAXP

JAXP:Sun 公司提供的解析器,支持 dom 和 sax 两种思想

2、DOM4J

DOM4J:一款非常优秀的解析器,会 dom 方式进行了封装。

3、Jsoup

Jsoup:是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

4、PULL

PULL:Android 操作系统内置的解析器,跟 sax 方式非常类似都是事件机制解析 xml 文件的。

posted on   格物致知_Tony  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示

目录导航