java dom4j xml标签_认识Java的第023天,xml技术相关

本文深入讲解了XML技术在Java中的应用,包括XML的基础知识、基本语法、Schema技术以及四种常用的XML解析方法:DOM、SAX、JDOM和DOM4J,并介绍了XPath技术的应用。

49cc9933ce205c76f82bff0d5bf3e701.png

学习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)

文本(只有字符型)

c61829d7ebec4e5affc6272f800f6ff4.png
示例:一个标准的xml文档

验证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) 得到每个节点的节点名和节点值

8fa1d76fe6a245f4fa839c5d72c10945.png
程序

c0fcab85c9044a719e77df4fbbf25351.png
结果

SAX方式解析XML数据;

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

SAX 解析 XML 的步骤 :

1) 创建 SAXParserFactory 的对象

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

3) 创建一个 DefaultHandler 的子类

4) 调用 parse 方法

caa71ea72d74df1af9920e79f6412464.png

704778eea495267f22f97e6fd9ea8aef.png
DefaultHandler 的子类

15cdbf3c5d2c9b5bc019a08bba9e44cc.png
结果

JDOM解析XML数据;

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

JDOM 解析 XML 的步骤:

1) 创建一个 SAXBuilder 对象

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

3) 获取根节点

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

5) 遍历集合

c1b3528516fb2fae107a4b055ea34842.png

bdcbd664ef3804c42046cc2271707ee5.png
结果

DOM4J解析XML数据;

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

DOM4J 解析 XML 的步骤是:

1) 创建 SAXReader 对象

2) 调用 read 方法

3) 获取根元素

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

7fec4dc8d3d628acc9af6d9953da1608.png

a3bb02477a9070f4907247871d444d41.png
结果

当xml文件层次较多时需要用到XPATH技术。可以快速获取节点。

需要准备的资源有:DOM4J 的 jar 包 、Jaxen 的 jar 包 、Xpath 中文文档 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值