我的JAVA学习(8)——XML技术、数据解析

本文详细介绍了XML的基本概念,包括其作为数据存储和传输的角色,以及与HTML的区别。XML的语法要点包括有且仅有一个根元素、标签成对出现、严格区分大小写等。此外,还探讨了XML的命名规则,并提供了XML代码实例。接着,文章讨论了XML数据解析的三种方法:DOM解析、SAX解析和JDOM及DOM4J解析,分别阐述了它们的特点和解析步骤。
摘要由CSDN通过智能技术生成

一、XML概念和体系
XML: 可扩展标记语言(EXtensible Markup Language)。没有预定义标签,需要自行定义标签;用于数据存储和数据传输。与HTML的差别:XML 主要作用是数据存储和传输(传输),HTML 主要作用是用来显示数据(显示)。
特点:
XML 数据以纯文本格式存储
实现不同应用程序之间的数据通信
实现不同平台间的数据通信
实现不同平台间的数据共享
使用 XML 将不同的程序、不同的平台之间联系起来

二、XML基本语法
基本语法:

  1. 有且只有一个根元素
  2. XML 文档声明必须放在文档的第一行
  3. 所有标签必须成对出现
  4. XML 的标签严格区分大小写
  5. XML 必须正确嵌套
  6. XML 中的属性值必须加引号
  7. XML 中,一些特殊字符需要使用“实体”
  8. XML 中可以应用适当的注释

XML元素: XML 元素指的是开始标签到结束标签的部分一个元素中可以包含(1) 其他元素(2) 文本(3) 属性(4) 以上的混合

命名规则: (1)名称可以包含字母、数字及其他字符(2)名称不能以数字或者标点符号开始(3) 名称不能以字母 xml 开始(4)名称不能包含空

XML代码案例:

<?xml version="1.0" encoding="UTF-8"?>
<books>
	<book id="1001">
		<name>java开发实战</name>
		<author>张三</author>
		<price>98.5</price>
	</book>
	<book id="1002">
		<name>mysql深入浅出</name>
		<author>王一一</author>
		<price>89.7</price>
	</book>
</books>

三、数据解析:
3.1DOM解析
特点:形成了树结构,有助于更好的理解、掌握,且代码容易编写;解析过程中,树结构保存在内存中,方便修改。(JAVA官方提供)

解析步骤:

  1. 创建一个 DocumentBuilderFactory 的对象
  2. 创建一个 DocumentBuilder 对象
  3. 通过 DocumentBuilder 的 parse(…)方法得到 Document 对象
  4. 通过 getElementsByTagName(…)方法获取到节点的列表
  5. 通过 for 循环遍历每一个节点
  6. 得到每个节点的属性和属性值
  7. 得到每个节点的节点名和节点值

3.2SAX解析
特点:采用事件驱动模式,对内存耗费比较小;适用于只处理 XML 文件中的数据。(JAVA官方提供)

解析步骤:

  1. 创建 SAXParserFactory 的对象
  2. 创建 SAXParser 对象 (解析器)
  3. 创建一个 DefaultHandler 的子类
  4. 调用 parse() 方法

3.3JDOM解析
特点:仅使用具体类,而不使用接口;API 大量使用了 Collections 类。(第三方提供)

解析步骤:

  1. 创建一个 SAXBuilder 对象
  2. 调用 build 方法,得到 Document 对象(通过 IO 流)
  3. 获取根节点
  4. 获取根节点的直接子节点的集合
  5. 遍历集合

3.4DOM4J解析
特点:JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表
示的功能;它使用接口和抽象基本类方法;具有性能优异、灵活性好、功能强大和极端易用的特点;是一个开放源码的文件。(第三方提供)

解析步骤:

  1. 创建 SAXReader 对象
  2. 调用 read 方法
  3. 获取根元素
  4. 通过迭代器遍历直接节点
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值