
学习Java的第23天,今天主要学习了xml技术的相关知识;
先是处理了上次遗留的UDP通信问题;接着进入xml技术m板块的学习,理解xml概念、基本语法以及Schema技术;学习理解了四种解析xml文件的方式方法;分别为: DOM 解析 (java 官方提供)、 SAX 解析(java 官方提供) 、 JDOM 解析(第三方提供) 、 DOM4J 解析(第三方提供) ;最后学习了XPath技术。
首先是了解xml;
XML 是指可扩展标记语言(EXtensible Markup Language) XML 没有预定义标签,需要自行定义标签
XML 的特点 是:XML 数据以纯文本格式存储 实现不同应用程序之间的数据通信 实现不同平台间的数据通信 实现不同平台间的数据共享 使用 XML 将不同的程序、不同的平台之间联系起来
XML 的作用是: 数据存储和数据传输
XML 和 HTML 之间的差异是:XML 主要作用是数据存储和传输(传输) HTML 主要作用是用来显示数据(显示)
XML 的基本语法是:
1) 有且只有一个根元素
2) XML 文档声明必须放在文档的第一行
3) 所有标签必须成对出现
4) XML 的标签严格区分大小写
5) XML 必须正确嵌套
6) XML 中的属性值必须加引号
7) XML 中,一些特殊字符需要使用“实体”
8) XML 中可以应用适当的注释
一个标准的XML文档由以下组成
一个根元素
一个或多个子元素
属性(id)
文本(只有字符型)

验证xml文档是否有效使用的方法是:DTD验证;
但DTD验证的局限性是:
1) DTD 不遵守 XML 语法
2) DTD 数据类型有限
3) DTD 不可扩展
4) DTD 不支持命名空间
DTD的替代者是:Schema技术;
Schema 是 DTD 的代替者,名称为 XML Schema,用于描述 XML 文档结构,比 DTD 更加强大,最主要的特征之一就是 XML Schema 支持数据类型 ,具体优点是:
1) Schema 是用 XML 验证 XML ,遵循 XML 的语法
2) Schema 可以用能处理 XML 文档的工具处理
3) Schema 大大扩充了数据类型,而且还可以自定义数据类 型
4) Schema 支持元素的继承
Schema 支持属性组
使用Schema验证XML文档的步骤是:
1) 创建 SchemaFactory 工厂
2) 建立验证文件对象
3) 利用 SchemaFactory 工厂对象,接收验证的文件对象,生成 Schema 对象
4) 产生对此 schema 的验证器
5) 要验证的数据(准备数据源)
6) 开始验证
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
解析 XML 文件的方式有四种
1) DOM 解析 (java 官方提供)
2) SAX 解析(java 官方提供)
3) JDOM 解析(第三方提供)
4) DOM4J 解析(第三方提供)
四种解析XML技术的特点是:
DOM 解析:
形成了树结构,有助于更好的理解、掌握,且代码容易编写。解析过程中,树结构保存在内存中,方便修改。
SAX 解析:
采用事件驱动模式,对内存耗费比较小。 适用于只处理 XML 文件中的数据时
JDOM 解析:
仅使用具体类,而不使用接口。 API 大量使用了 Collections 类。
DOM4J 解析:
JDOM 的一种智能分支,它合并了许多超出基本 XML 文档 表示的功能。 它使用接口和抽象基本类方法。 具有性能优异、灵活性好、功能强大和极端易用的特点。 是一个开放源码的文件
DOM解析XML的步骤:
1) 创建一个 DocumentBuilderFactory 的对象
2) 创建一个 DocumentBuilder 对象
3) 通过DocumentBuilder的parse(...)方法得到Document对象
4) 通过 getElementsByTagName(...)方法获取到节点的列表
5) 通过 for 循环遍历每一个节点
6) 得到每个节点的属性和属性值
7) 得到每个节点的节点名和节点值


SAX方式解析XML数据;
SAX,全称 Simple API for XML,是一种以事件驱动的 XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下 依次解析,由于边扫描边解析,所以它解析 XML 具有速度 快,占用内存少的优点
SAX 解析 XML 的步骤 :
1) 创建 SAXParserFactory 的对象
2) 创建 SAXParser 对象 (解析器)
3) 创建一个 DefaultHandler 的子类
4) 调用 parse 方法



JDOM解析XML数据;
JDOM是一种解析XML的Java工具包,它基于树型结构, 利用纯Java的技术对XML文档实现解析。所以适合于Java 语言
JDOM 解析 XML 的步骤:
1) 创建一个 SAXBuilder 对象
2) 调用 build 方法,得到 Document 对象(通过 IO 流)
3) 获取根节点
4) 获取根节点的直接子节点的集合
5) 遍历集合


DOM4J解析XML数据;
DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品, 用来读写 XML 文件。
DOM4J 解析 XML 的步骤是:
1) 创建 SAXReader 对象
2) 调用 read 方法
3) 获取根元素
4) 通过迭代器遍历直接节点


当xml文件层次较多时需要用到XPATH技术。可以快速获取节点。
需要准备的资源有:DOM4J 的 jar 包 、Jaxen 的 jar 包 、Xpath 中文文档 。
本文深入讲解了XML技术在Java中的应用,包括XML的基础知识、基本语法、Schema技术以及四种常用的XML解析方法:DOM、SAX、JDOM和DOM4J,并介绍了XPath技术的应用。

被折叠的 条评论
为什么被折叠?



