Java基础学习10--XML

XML 是可扩展标记语言(Extensible Markup Language)的简称。XML 一经推出,就得到了 IT 行业巨头们的响应,如今已被广泛使用。XML 独立于计算机平台、操作系统和编程语言,用来表示数据,简单、灵活、交互性好和可扩展这几个特点是其能被广泛使用的主要原因。

XML 的应用范围主要体现在以下几个方面:

  • 存储数据:内存中的数据需要存储到文件中,才能在关闭系统或系统掉电之后,通过文件进行恢复。现如今,用数据库存储数据这种方式使用得最为广泛。因为数据库管理系统不仅能存储数据,而且提供了众多的管理数据的功能,尤其对大量数据的操作,通常都使用数据库。XML 与数据库相比,最大的优势就是简单、通用。
  • 系统配置:如今,许多系统的配置文件都使用 XML 文档。使用 XML 文档进行系统配置,配置修改时不需要重新编译,灵活性强。例如 Servlet,需要在 web.xml 文件中进行配置,Spring 的默认配置文件是 applicationContext.xml 等。
  • 数据交换:在各个分散的应用系统里,因为其平台、系统、数据库、编程语言的差异,保存起来的数据往往只能被本系统调用,形成一个个信息孤岛。整合各个系统的数据信息,或者在两个或多个系统中进行数据交换,往往让 IT 人员非常烦躁。现在利用 XML 交互性好的特点,可以将各个信息孤岛的数据转换成标准的 XML 文件,通过这个标准的 XML 文件进行导入和导出,以达到交换数据的目的。

XML 文档的标签(如、、、等)可以是自定义的,具有可扩展性,这和之后将要学的 HTML 的标签是固定的不同。另外,HTML 的主要作用是通过标签和属性,更好地显示数据,而 XML 是用来存储或交换数据用的,不记录数据的表现形式。

XML 文档总是以 XML 声明开始,即告知处理程序,本文档是一个 XML 文档。在 XML 声明中,通常包括版本、编码等信息,以 <? 开始,以 ?> 结尾。

XML 文档由元素组成,一个元素由一对标签来定义,包括开始和结束标签,以及其中的内容。元素之间可以嵌套(但不能交叉),也就是说元素的内容里还可以包含元素。

标签可以有属性(属性值要加引号),例如 car 标签和 truck 标签都有 id 这个属性。属性是对标签的进一步描述和说明,一个标签可以有多个属性,每个属性都有自己的名字和值,属性是标签的一部分

 目前最常用的 XML 解析技术有 DOM 和 SAX。JDK 提供了 JAXP 来使用 DOM 和 SAX,其中 org.w3c.dom 是 W3C 推荐的用于使用 DOM 解析 XML 文档的接口,org.xml.sax 是使用 SAX 解析 XML 文档的接口,javax.xml.parsers 提供处理 XML 文档的类,支持 DOM 和 SAX

学习总结:

  1. I/O 按照类型分类,可以分为字节流、字符流等;按照流向分类,可以分为输入流和输出流。其中, 输入 和 输出 的方向,是以内存为参照点。
  2. File 类生成的对象代表一个特定的文件或目录,并且 File 类提供了若干方法对这些文件或目录进行读写等各种操作, File 类及本章讲解的大部分流都在 java.io 包下。
  3. 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL。对于流而言,不用关心数据是如何传输的,只需要从源端输入数据(读),向目的端输出数据(写)。
  4. JDK 从 1.5 版开始,增加了静态导入的特性,用来导入指定类的某个静态属性或静态方法,或全部的静态属性或静态方法,静态导入使用 import static 语句。
  5. 输入字节流类继承自抽象类 InputStream,输出字节流继承自抽象类 OutputStream ;读取字符流类继承自抽象类 Reader,写入字符流继承自抽象类 Write
  6. 字节流可以处理任何类型的文件,而字符流常用于处理以文字形式存储的文本文件,如 .txt 等。
  7. 缓冲流的目的是让原字节流、字符流新增缓冲的功能;转换流可以对一些不同类型的流进行类型转换;数据流允许流直接操作基本数据类型和字符串。
  8. I/O 内容的底层实际模式是装饰器模式,装饰器模式要求包装类和被包装类属于同一个继承体系,并且包装后外观(API)未变,但功能得到了增强。
  9. XML 可以用于储存数据、系统配置和数据交换,并通过 DOM 和 SAX 等方式进行解析。
  10. XML 可以通过 DOM 和 SAX 的方式进行解析,DOM 把一个 XML 文档映射成一个分层的对象模型进行解析,而 SAX 是基于事件驱动的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值