XML-精讲

XML
第一章 XML概念及基本语法
1-1 什么是XML?都有哪些版本?
XML为可扩展标记语言,全称为Extensible Markup Language。
XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的。


<servlet>

W3C在1998年2月发布1.0版本,2004年2月又发布1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有人用。
我们现在实际项目开发中所使用的都是1.0版本,1.1版本不予考虑。

1-2 XML用处
(1) 数据传输(数据传输媒介)
场景1
A公司 java语言
Person p = new Person(“A0001”,”zs”,23);

{“id”:”A0001”,”name”:”zs”,”age”:23}
{id:”A0001”,name:”zs”,age:23}

将p转换成xml文档
person.xml


A0001
zs
23



B公司 其他面向对象语言 C# C++…
想要A公司的p对象中的数据,由于语言不通,不能用p
接收person.xml
B公司解析person.xml中的数据
A0001 zs 23
拿到以上数据之后,再将以上数据打包到自己语言的对象中就可以了.

场景2:
后端(java)连接数据库,取得数据
将数据传输到前端(html)
前端接收数据!!!
使用什么语言来接收数据???
示例:从数据库表中取得 A0001 zs 23
在后台封装到p对象中
Person p = new Person(“A0001”,”zs”,23);
后台将p对象传输到前端js
js来接收p对象
将p转换成xml文档
js解析xml文档
var p = 解析xml得来的数据.

在未来的实际项目开发中,作为数据传输的媒介,xml语法冗长,外部解析插件支持性差,所以我们不用这种形式.
我们未来应用的最多的数据传输媒介的方式是json

(2)配置文件
xml作为配置文件来使用,在每一项技术中,xml的配置文件的作用都不相同.
比如在学习servlet/jsp的时候,我们要使用到的是叫做web.xml的配置文件.这个配置文件的作用是web开发的主配置文件.所有的servlet类必须经过在web.xml中进行注册之后,才能够使用.
在我们以后的框架的学习中,每一款框架都会要求有xml配置文件的应用,不同的框架对于xml配置的作用都是不同的.

1-3 XML语法
(1)创建普通文本文件,后缀名为xml
(2)声明
语法:
<?xml version="1.0" encoding="UTF-8"?>
解析:
a、文档声明必须以<?xml开头,必须以?>结尾
b、文档声明必须在文档中的0行0列
c、文档声明的3个属性
versioin属性:指定XML文档版本.必须属性,因为我们 不会选择1.1,只会选择1.0;
encoding属性:指定当前文档的编码。可选属性,默认 值是utf-8;
standalone属性:指定文档独立性。可选属性,默认值 为yes,表示当前文档是独立文档。如果为no表示当前文档不 是独立的文档,会依赖外部文件。

(3)元素
语法:

解析
a、元素是XML文档中最重要的组成部分,
b、普通元素的结构开始标签、元素体、结束标签组成。例如: 你好
c、元素体:元素体可以是元素,也可以是文本,例如:
你好
d、空元素:空元素只有开始标签,而没有结束标签,但元素必 须自己闭合.例如:



	 e、元素命名:
		区分大小写
		不能使用空格,不能使用冒号:
		不建议以XML、xml、Xml开头
		良好的XML文档,必须有一个根元素。

(4)属性
语法:

解析:
a、属性是元素的一部分,它必须出现在元素的开始标签中
b、属性的定义格式:属性名=属性值,其中属性值必须使用 单引或双引
c、一个元素可以有0~N个属性,但一个元素中不能出现同名 属性
d、属性名不能使用空格、冒号等特殊字符,且必须以字母开 头
(5)注释
语法:

解析:
与html一样,以“ ”结束。xml解析器会 自动忽略掉注释掉的xml代码。
(6)转义字符

<p>
	5&lt;3
</p>

	语法:
	&lt; 对应<小于号 
	&gt;对应>大于号 
	&amp; 对应&和 
	&apos; 对应' 单引号 
	&quot; 对应" 双引号
	解析:
	 a、因为很多符号已经被XML文档结构所使用,所以在元素				体或属性值中想使用这些符号就必须使用转义字符
	 b、xml中的转义字符与html中的使用方式一样

(7)CDATA区

如果我们表述的文本中出现了大量的需要转义的字符,如果一个一个进行转换,那么会非常麻烦,我们可以使用CDATA来完成,写在CDATA中的内容是不需要进行转义操作的.



	语法:
	<![CDATA[
		<><><><><><>>>>>><><><><><><&&&&&&’’’””””””””””””’>>
	]]>

第二章 XML约束
2-1 DTD约束
DTD(Document Type Definition),文档类型定义,用来约束xml文档。规定xml文档中元素的名称,子元素的名称及顺序,元素的属性等。
2-2 Schema约束
同DTD约束一样,也是用来约束xml文档用的技术。
从功能上讲,Schema约束要比DTD强大很多,是DTD 替代者
Schema本身也是xml文档,但Schema文档的扩展名为xsd,而不是xml。

创建包结构
在这里插入图片描述在这里插入图片描述

2-3通过使用约束对web.xml进行搭建
见代码
2-4 面试题:XML与DTD、Schema的关系是什么
回答:dtd与schema也是xml,是传统xml文件的约束扩展

第三章 XML文档解析
3-1什么是XML文档解析
将xml文档中的元素、属性、文本内容进行拆解,我们获得 这些组件的过程就叫做xml的解析工作。
3-2 XML文档解析方式
(1)sax解析:逐行解析,只能查询。
(2)dom解析:一次性将文档加载到内存中,增删改查的操作 都可以。

3-3 常见的XML解析开发包
JAXP:sun公司提供支持DOM和SAX开发包
JDom:dom4j前身
dom4j:实际开发中最常用的解析开发包

3-4 使用dom4j技术解析XML案例
(1)导入jar包
dom4j-1.6.1.jar
(2)操作流程
dom4j 必须使用核心类SaxReader加载xml文档获得 Document,通过Document 对象获得文档的根元素,然后就可 以继续操作了。
(3)常用API
a、SaxReader对象
read(…) 加载执行xml文档
Document对象
getRootElement() 获得根元素
b、Element对象
elements(…) 获得指定名称的所有子元素。可以不指定 名称
element(…) 获得指定名称第一个子元素。可以不指定 名称
getName() 获得当前元素的元素名
getText() 获得当前元素的文本内容
(4)具体代码实现方式:
a.导入jar包
b.创建一个核心对象 SAXReader
new SAXReader();
c.将xml文档加载到内存中形成一棵树
Document doc=reader.read(文件)
d.获取根节点
Element root=doc.getRootElement();
e.通过根节点就可以获取其他节点(文本节点,属性节点, 元素节点)
获取所有的子元素
List list=root.elements()

3-5 dom4j技术的扩充–xpath的解析方式
(1)什么是xpath解析
(2)xpath常用方式
在这里插入图片描述

3-6 XML与JSON的比较
XML和JSON都可以完成不同系统之间数据交换。
XML体积较大,解析难度较大,所以在现代开发中通常采用JSON进行数据交换,因为JSON体积小,解析简单,而XML通常充当系统当中的配置文件

猜你喜欢

转载自blog.csdn.net/qq_30347133/article/details/83893664
今日推荐