如何解析XML?

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介: 如何解析XML?

Java 程序中读取 XML 文件的过程称为解析 XML

 解析 XML 文件的方式

1) DOM 解析 (java 官方提供)

2) SAX 解析 (java 官方提供 )

3) JDOM 解析 ( 第三方提供 )

4) DOM4J 解析 ( 第三方提供 )

DOM 解析 XML 的步骤

1) 创建一个 DocumentBuilderFactory 的对象

2) 创建一个 DocumentBuilder 对象

3) 通过 DocumentBuilder 的 parse(...) 方法得到 Document 对象

4) 通过 getElementsByTagName(...) 方法获取到节点的列表

5) 通过 for 循环遍历每一个节点

6) 得到每个节点的属性和属性值

7) 得到每个节点的节点名和节点值

SAX 的概述

SAX ,全称 Simple API for XML ,是一种以事件驱动的

XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下

依次解析,由于边扫描边解析,所以它解析 XML 具有速度

快,占用内存少的优点

SAX 解析 XML 的步骤

1) 创建 SAXParserFactory 的对象

2) 创建 SAXParser 对象 ( 解析器 )

3) 创建一个 DefaultHandler 的子类

4) 调用 parse 方法

JDOM 概述

JDOM 是一种解析 XML 的 Java 工具包,它基于树型结构,

利用纯 Java 的技术对 XML 文档实现解析。所以中适合于 Java

语言

JDOM 解析 XML 的步骤

1) 创建一个 SAXBuilder 对象

2) 调用 build 方法,得到 Document 对象 ( 通过 IO 流 )

3) 获取根节点

4) 获取根节点的直接子节点的集合

5) 遍历集合DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品, 用来读写 XML 文件的

DOM4J 解析 XML 的步骤

1) 创建 SAXReader 对象

2) 调用 read 方法

3) 获取根元素

4) 通过迭代器遍历直接节点

四种解析 XML 的特点

1)DOM 解析 :

形成了树结构,有助于更好的理解、掌握,且代码容易编写。 解析过程中,树结构保存在内存中,方便修改。

2)SAX 解析 :

采用事件驱动模式,对内存耗费比较小。 适用于只处理 XML 文件中的数据时

3)JDOM 解析 :

仅使用具体类,而不使用接口。

API 大量使用了 Collections 类。

4)DOM4J 解析 :

JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。 它使用接口和抽象基本类方法。

具有性能优异、灵活性好、功能强大和极端易用的特点。 是一个开放源码的文件

XPATH 技术 _ 快速获取节点

准备资源

1) DOM4J 的 jar 包

2) Jaxen 的 jar 包

3) Xpath 中文文档

目录
相关文章
|
2月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
189 0
|
9月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2169 1
|
9月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
320 15
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
262 0
|
9月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
891 29
|
9月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
366 4
|
9月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

推荐镜像

更多
  • DNS