美文网首页
Java学习day-22:XML

Java学习day-22:XML

作者: 开源oo柒 | 来源:发表于2019-08-07 22:21 被阅读0次

一、XML的概念

1.概念:

XML 指可扩展标记语言(EXtensible Markup Language);XML 没有预定义标签,需要自行定义标签。主要用来数据存储和数据传输。

2.特点:

1)XML 数据以纯文本格式存储;

2)实现不同应用程序之间的数据通信;

3)实现不同平台间的数据通信;

4)实现不同平台间的数据共享;

5)使用 XML 将不同的程序、不同的平台之间联系起来。

3.XML基本语法

(1)基本语法:

1)有且只有一个根元素。

2) XML 文档声明必须放在文档的第一行;

3)所有标签必须成对出现;

4)XML 的标签严格区分大小写;

5)XML 必须正确嵌套;

6)XML 中的属性值必须加引号;

7)XML 中,一些特殊字符需要使用“实体”;

8)XML 中可以应用适当的注释。

(2)XML元素:

指的是开始标签到结束标签的部分,一个元素中可以包含(其他元素、文本、属性、及其混合)。

(3)命名规则:

1)名称可以包含字母、数字及其他字符。

2)名称不能以数字或者标点符号开始;

3)名称不能以字母xml开始。

4)名称不能包含空格。

(4)标准的XML文档:

4.Schema技术:

(1)DTD验证:

DTD文档类型定义;验证是否是“有效”的XML。

局限性:

1)DTD 不遵守 XML 语法;

2)DTD 数据类型有限;

3)DTD 不可扩展;

4)DTD 不支持命名空间。

1)PCDATA(Parsed Character DATA) 的意思是被解析的字符数据。

2)CDATA (Unparsed Character Data )不应由 XML 解析器进行解析的文本数据。

(3)Schema 技术:

     Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型。

结构:

1)Schema 是用 XML 验证 XML 遵循 XML 的语法;

2)Schema 可以用能处理 XML 文档的工具处理;

3)Schema 大大扩充了数据类型,而且还可以自定义数据类型;

4)Schema 支持元素的继承;

5)Schema 支持属性组。

验证XML文档:

1) 创建 SchemaFactory 工厂;

2) 建立验证文件对象;

3) 利用 SchemaFactory 工厂对象,接收验证的文件对象,生成 Schema 对象;

4) 产生对此 schema 的验证器;

5) 要验证的数据(准备数据源);

6) 开始验证。

二、解析XML数据

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

需要读取的XML数据

1.DOM方式:

DOM缺点:一次全部读进内;占用内存。

(1)步骤:

1) 创建一个 DocumentBuilderFactory 的对象。

2) 创建一个 DocumentBuilder 对象。

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

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

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

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

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

代码截图 结果

2.SAX方式:

    是一种以事件驱动的XMl API,SAX 与 DOM 不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析 XML 具有速度快,占用内存少的优点。

(1)步骤:

1) 创建 SAXParserFactory 的对象。

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

3) 创建一个 DefaultHandler 的子类。

4) 调用 parse 方法。

代码截图 结果

3.JDOM解析MXL:

JDOM是一种解析XML的Java工具包,它基于树型结构,利用纯Java的技术对XML文档实现解析。所以中适合于Java语言。

(1)步骤:

1) 创建一个 SAXBuilder 对象;

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

3) 获取根节点;

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

5) 遍历集合。

代码截图 结果

4.DOM4J解析XML:

1.DOM4J 是一个 Java 的 XML API,是 JDOM 的升级品,用来读写 XML 文件的。

(1)步骤:

1)创建SAXReader对象;

2)调用SAXReader对象的Read方法;

3)获取根元素;

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

代码截图 结果

5.四种解析的特点:

(1)DOM解析:

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

(2)SAX解析:

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

(3)JDOM解析:

仅使用具体类,而不使用接口。API 大量使用了 Collections 类。

(4)DOM4J解析(推荐):

JDOM 的一种智能分支,它合并了许多超出基本 XML 文档表示的功能。

它使用接口和抽象基本类方法。具有性能优异、灵活性好、功能强大和极端易用的特点。是一个开放源码的文件。

6.XPath:

可以使用该技术快速获取节点和属性的信息。

(1)使用步骤:

1)添加dom4j和Jaxen的jar文件;

2)创建SAXReader对象;

3)调用SAXReader对象的read方法将xml文件转换Document对象;

4)调用相关的API方法查找指定的元素。

代码截图 结果

相关文章

网友评论

      本文标题:Java学习day-22:XML

      本文链接:https://www.haomeiwen.com/subject/witzdctx.html