【JavaWeb】XML的理解与Dom4j解析技术的使用(上)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 1 xml简介2 xml入门2.1 xml示例文件2.2 xml语法介绍2.2.1 xml注释2.2.2 元素(标签)2.2.3 xml的属性2.2.4 xml语法规范2.2.5 文本区域(CDARA)2.3 xml解析技术3 Dom4j 解析技术3.1 Dom4j 类库的下载与简介3.2 dom4j编程一般步骤3.3 案例:使用dom4j读取xml文件得到Document对象

1 xml简介

xml是一种可扩展的标记性语言。其主要作用如下:


用以保护数据,且这些数据具有自我描述性;

可以作为项目或者模块的配置文件;

可以作为网络传输数据的格式(现在以JSON为主)

2 xml入门

2.1 xml示例文件

尝试创建一个xml文件来描述学生信息。


创建一个xml文件 students.xml


students.xml

<?xml version="1.0" encoding="utf-8" ?>
<!--
    <?xml version="1.0" encoding="utf-8" ?>
    以上内容就是xml文件的声明
    version表示xml的版本
    encoding表示xml文件本身的编码
-->
<students><!--students 表示多个学生信息-->
    <student sno="20408010101"><!--student表示一个学生信息 sno表示学号-->
        <name>路飞</name><!--name表示姓名-->
        <age>17</age><!--age表示年龄-->
    </student>
    <student sno="20408010102"><!--student表示一个学生信息 sno表示学号-->
        <name>娜美</name><!--name表示姓名-->
        <age>16</age><!--age表示年龄-->
    </student>
</students>

2.2 xml语法介绍

2.2.1 xml注释

xml的注释与html文件的注释格式一样:


<!-- 这里是注释 -->

2.2.2 元素(标签)

在html中,我们学习过,html标签分为单标签和双标签,且标签名对大小写不敏感。当然,标签也具有一些属性,分为基本属性和事件属性。


那么,什么是xml元素呢?

XML元素是指从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。



在上图的例子中, 和  都拥有元素内容,它们都包含了其他元素。而像  和  只包含文本,因此,只有文本内容。


xml 元素遵循以下命名规则:


名称可以包含字母、数字和其他字符;

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

名称不能包含空格。

在xml中的元素,也分为单标签和双标签,格式与 html 一致。


2.2.3 xml的属性

xml的标签属性与html的标签属性是非常类似的,属性可以提供元素的额外信息。


一个标签上可以书写多个属性。每个属性的值需要用引号引住。 属性名的命名规范与标签的规则一致。


2.2.4 xml语法规范

所有 XML 元素都必须有关闭标签。不闭合就会报错。

XML 标签 对大小写敏感。

XML 文档必须有根元素,根元素即没有父标签的元素,且是唯一一个。

XML 中的特殊字符可以使用 html语法中的,如空格等。

2.2.5 文本区域(CDARA)

xml中提供了一个CDATA语法,可以告诉xml解析器,位于CDATA里的文本内容,只是纯文本,不需要xml语法解析!


CDATA格式:


<![CDATA[这里可以把你输入的字符原样显示,不会解析!]]>

2.3 xml解析技术

不论是html文件还是xml文件都是标记型文档,都可以使用w3c组织制定的dom技术来解析。



XML 文档对象模型定义访问和操作 XML文档 的标准方法;

DOM 将 XML 文档作为一个树形结构,而树叶被定义为节点。

早期JDK提供了两种 xml解析技术——DOM 和sax 简介(了解):

dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。

Java对 dom 技术解析标记也做了实现。

sun 公司在 JDK5 版本対 dom 解析技术进行升级:SAX ( Simple API for XML )

SAX 解析,它跟 W3C制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。

它是一行一行的读取xml 文件内容进行解析的。不会创建大量的dom 对象。

所以它在解析 xml 的时候,在内存的使用上、性能上都优于 Dom 解析。


第三方的解析:


jdom 在dom 基础上进行了封装

dom4j 又对jdom 进行了封装。

pull 主要用在 Android 手机开发,是在跟sax非常类似都是事件机制解析 xml 文件。

Dom4j 它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。


3 Dom4j 解析技术

3.1 Dom4j 类库的下载与简介

由于 dom4j 不是 sun公司 的技术,属于第三方公司的技术,因此,想要使用就必须下载 dom4j的jar包。


dom4j的官网是http://www.dom4j.org,截至到目前最新的版本是1.6.1。dom4j是一个易用的、开源的库,应用于Java平台XML、XPath、和XSLT,并且提供了对DOM、SAX和JAXP的完全支持。主要功能包括针对Java平台设计完成支持Java的集合框架;完全的支持JAXP, TrAX, SAX, DOM, and XSLT;为XML文档的简单导航完全集成的XPath支持;基于事件的过程模式完全支持大量的文档或者是XML流;基于Java接口,更加灵活容易扩展和实现;支持XML Schema数据类型支持使用Kohsuke更加优于多模式验证器库。


下载压缩包,并解压,取得jar包。 下载地址:https://dom4j.github.io/



Dom4j目录简介:


docs是文档目录,点开后,打开index.html,可以查看参考手册。


lib目录存储了dom4j需要的第三方jar包。


src目录下是dom4j的源码和一些测试与样例。

3.2 dom4j编程一般步骤

先加载xml文件创建Document对象;

通过Document对象拿到根元素对象;

通过根元素.element(标签名); 可以返回一个集合,集合中存储了所有指定标签名的元素;

找到想要修改、删除的子元素,进行相应的操作;

保存在硬盘上。

3.3 案例:使用dom4j读取xml文件得到Document对象

需要解析的students.xml文件的内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student sno="20408010101">
        <name>路飞</name>
        <age>17</age>
    </student>
    <student sno="20408010102">
        <name>娜美</name>
        <age>16</age>
    </student>
</students>

解析过程如下:

1️⃣ 首先,将需要解析的xml文件存储到项目的src目录下。

相关文章
|
3天前
|
安全 Android开发 iOS开发
安卓与iOS的较量:技术特性与用户体验的深度解析
在移动操作系统的战场上,安卓和iOS一直占据着主导地位。本文将深入探讨这两大平台的核心技术特性,以及它们如何影响用户的体验。我们将从系统架构、应用生态、安全性能和创新功能四个方面进行比较,帮助读者更好地理解这两个系统的异同。
25 3
|
2天前
|
监控 网络协议 API
.NET WebSocket 技术深入解析,你学会了吗?
【9月更文挑战第4天】WebSocket 作为一种全双工协议,凭借低延迟和高性能特点,成为实时应用的首选技术。.NET 框架提供了强大的 WebSocket 支持,使实时通信变得简单。本文介绍 WebSocket 的基本概念、.NET 中的使用方法及编程模型,并探讨其在实时聊天、监控、在线游戏和协同编辑等场景的应用,同时分享最佳实践,帮助开发者构建高效实时应用。
35 12
|
4天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
6天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2天前
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
10 0
|
23天前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
3月前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
|
3月前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
|
8天前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
16 1

推荐镜像

更多