XML

1 概述:

XML(Extensible Markup Language):可扩展标记语言

文件后缀名:.xml

作用:①作为使用框架的配置文件 ②用于传输数据

2 XML 与 HTML

区别 XML HTML
语法 语法松散,标签自定义 语法严谨,开闭严格,大小写敏感,标签预定义
作用 传输和存储数据 前端显示页面

3 XML组成部分

3.1 文档声明

<?xml version="1.0" encoding="utf-8"?>
  • 文档声明必须放在第一行
  • 属性列表
    • version –文档符合XML1.0规范,我们学习1.0
    • encoding –文档字符编码,比如”GB2312”或者”UTF-8”
    • standalone –文档定义是否独立使用
    • standalone=”no”为默认值。yes代表是独立使用,而no代表不是独立使用

3.2 标签名定义要求

  • 包含数字、字母、其他字符
  • 不能以数字和标点符号开头 (但是可以以 _$ 开头)
  • 不能包含空格

3.3 属性

  • 属性值必须用引号(单双都可)引起

  • 一个元素可以有多个属性

<元素名 属性名1="属性值1" 属性名2="属性值2">

3.4 CDATA

有些内容可能不想让解析引擎解析执行,想要原样展现文本,需要设置CDATA区

<![CDATA[
文本......
]]>

4 约束

4.1 约束的作用

约束文件用于规定xml文档的书写规则

约束文件类型:①DTD文件 ②Schema

4.2 DTD约束 (Document Type Definition)

  • 本地DTD文档
<!DOCTYPE 根标签名 SYSTEM "dtd 文件的位置">
  • 网络DTD文档
<!DOCTYPE 根标签名 PUBLIC "dtd 文件的位置">
  • 局限性

4.3 Schema约束(xsd文件)

  • 引入
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>

xmlns :表示默认的命名空间

xmlns:xsi :确定 Schema 文件的版本

xmlns:aop :表示使用xsi作为前缀的命名空间

xsi:schemaLocation :命名空间 - XDS文件位置

5 XML解析

5.1 DOM解析(Document Object Model)

在应用程序中,基于 DOM 的 XML 分析器将一个 XML 文档转换成一个对象模型的集合(通常称 DOM 树),应用程序正是通过对这个对象模型的操作,来实现对 XML 文档数据的操作。通过 DOM 接口,应用程序可以在任何时候访问 XML 文档中的任何一部分数据,因此,这种利用 DOM 接口的机制也被称作随机访问机制。

然而,由于 DOM 分析器把整个 XML 文档转化成 DOM 树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。所以,DOM 分析器对机器性能的要求比较高,实现效率不十分理想。

优点:操作方便,可以对文档进行 CRUD 的所有操作

缺点:占内存

5.2 SAX解析(Simple APIs for XML)

与 DOM 不同,SAX 提供的访问模式是一种顺序模式,这是一种快速读写 XML 数据的方式。当使用 SAX 分析器对 XML 文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。

优点:不占内存,一般用于手机 APP 开发中读取XML

缺点:只能读取,不能增删改

posted on 2022-04-10 18:38  墩墩儿er  阅读(119)  评论(0编辑  收藏  举报