目录
一、XML简介:
- XML的全称为EXtensible Markup Language(可扩展标记语言);
- XML和HTML看起来很像,但是功能完全不同;(HTML基础)
- XML是用来存储、传输数据的 ;
- XML中的标签是自己定义的 ;
和HTML不同,HTML侧重于数据的显示,XML侧重于数据的存储和传输,因此,在浏览器中打开的XML文件并不像HTML那样;例子如下
二、HTML 和 XML的对比
- XML 比 HTML的结构更严谨
- 功能不同:
HTML:HTML的功能主要是数据显示,常用作写静态网页 XML:主要功能是用于数据存储和数据传输,常用作配置文件使用 |
- XML 的标签是自定义标签;HTML中的标签可以是自定义标签,也可以是HTML中已经定义过的标签
三、XML的语法规则:
先来看一个简单的XML
3.1 标签
(1)xml的标签必须是成对出现<> ... </> (在html中有些标签不用成对出现) |
(2)在没有定义命名空间的情况下,不能直接在标签中使用冒号,如:<stu:dent> ... </stu:dent> |
(3)标签不能以数字开头,可以用下划线开头 |
(4)标签中不能出现空格,如<stu dent> ... </stu dent> |
(5)xml的标签对大小写铭感(比如<aaa> ... </aaa> 和 <Aaa>...</Aaa>是不同的) |
(6)当有多层标签的时候,标签之间的嵌套必须正确嵌套 如:<a><b>...</a></b>是错误的,要写成<a><b>...</b></a>才行(html中可以不用正确嵌套) |
(7)xml中的属性值必须加引号(html中可以没有) |
3.2 属性:
- 属性名称 = “属性值”;属性值可以使用单引号或者双引号包含起来
- 一般情况下,在没有指定TDT/Schema 约束的时候,属性名称可以重复
3.3 注释:
XML注释和HTML注释格式一样: <!-- 注释内容 -->
3.4 文档声明及XML的解码过程:
XML 声明文件的可选部分,如果存在 需要放在文档的第一行
<?xml version="1.0" encoding="UTF-8"?>
解码过程:
3.5 转移字符
在xml中有些字符有特殊含义,比如:< >
在xml的文本中不能出现在这些有特殊含义的字符,因此就需要用到转义字符
符号 | 转义字符 |
< | < |
> | > |
& | & |
' | ' |
" | " |
如果不使用转义字符会报错:
使用转移字符:
3.6 CDATA块 --- 批量转译
批量转译:CDATA 当有一大部分文本信息需要转译的时候使用转移字符就比较麻烦,因此可以使用CDATA块
CDATE语法:
<![CDATA[
要转译的内容
...
]]>
在解析上面这部分内容的时候,编译器会忽略掉CDATA块中的内容
注意:
- 在CDATA的内容中,不能包含字符串“]]>”,也不允许嵌套使用CDATA块
- 在CDATA的结尾部分(]]>)里面不能包含空格或者换行符
四、XML的树形结构:
在编写xml标签的时候,必须要定义一个跟标签,它下面的所有其他标签都是它的子标签,例子如下:
五、XML的作用
5.1 可以作为配置文件去使用
配置文件:xxx.properties(后缀名为.properties的文件),其中的内容为key = value的形式
5.2 作为小型数据库使用
例如:作为一个存储一个学生信息的小型数据库
<?xml version = "1.0" encoding = "utf-8"?>
<student_img>
<student id="01">
<name>haha</name>
<gender>男</gender>
<age>18</age>
<email>aaa@qq.com</email>
</student>
<student id="02">
<name>xixi</name>
<gender>女</gender>
<age>16</age>
<email>bbb@qq.com</email>
</student>
<student id="01">
<name>pili</name>
<gender>男</gender>
<age>20</age>
<email>ccc@qq.com</email>
</student>
<student id="01">
<name>pala</name>
<gender>男</gender>
<age>17</age>
<email>ddd@qq.com</email>
</student>
</student_img>
通过java程序将以上xml文件中的student标签中的内容解析为一个student类的对象就可以实现将一个xml文件作为一个小型数据库使用
5.3 XML可以把数据从HTML中分离出来
如果我们在使用THML写静态网页的时候,每次数据发生改变的话,我们只能通过修改HTML文件来改变网页的数据结果显示,这样的话就会耗费我们大量的时间和精力。
通过XML,我们可以让HTML中的数据独立的存储在XML中,然后通过几行简单的JavaScript代码,就可以读取一个外部的XML文件,从而更新网页的数据内容。这样的话我们就可以单独的专注于HTML的布局和显示,而不用不断的更新HTML的底层数据。
5.4 简化平台变更
当我们从一个系统升级到另一个系统时,必须转换大量的数据,不兼容的数据经常会丢失。
XML数据以文本格式存储,。这使得XML在不损失数据的情况下更容易扩展或升级到新的操作系统、新的应用程序以及浏览器。