XML
写在前面的话
简介
像我们学的Java可以理解为人与计算机交流的语言,而XML我们可以理解为软件与软件交流的一门语言。比方说C语言和Java如何进行交流,那么XML和后面介绍的JSON就是我们首选的语言。
XML指可扩展标记语言(extensible markup language)
特点:
- xml具有平台无关性。表示XML文件无论是windows还是Linux打开都是一样的,无论是Java还是python等解析出来效果也是一样的。
- 是一门独立的标记语言。即不依赖任何东西去描述数据,或者独立存在也有意义
- xml能描述自己
为什么学习XML
- 网络数据传输 (一般用JSON)
- 用更好的方式传输数据
- 服务器和客户端可能语言不一样,XML可以跨语言
- 数据存储 (用的很少)
- 配置文件 (用的多)
- 用XML配置文件,可以在多个语言之间互通
XML文件
.XML文件是保存XML数据的一种方式
XML数据也可以以其他的方式存在(如在内存中构建XML数据,或者存在字符串中)
不要将XML语言狭隘的理解为XML文件。
XML语法格式
1,XML文档声明
文档声明放第一行
<?xml version="1.0" encoding="UTF-8"?>
2,标记(元素/ 标签/ 节点 )
XML文档,由一个个的标记组成
标记语法:
- 开始标记(开放标记):<标记名称>
- 标记内容:位于开始标记与结束标记之间
- 结束标记(闭合标记):</标记名称>
举例:通过标记描述一个人名:
<name>王二麻子</name>
标记名称命名规则:
- 可以含字母,数字,其他字符
- 不能以数字和标点符号开始
- 不能以"xml"或"XML"开始
- 不能包含空格和冒号(😃
- 名称区分大小写
3,标记可以嵌套,但不能交叉
正确:
<person>
<name>张三</name>
<age>18</age>
</person>
错误:
<person>
<name>张三<age></name>18</age>
</person>
4,一个XML文档中,必须有且仅有一个根标记
最外层的标记为跟标记,由一对包含所有,只能有一对:
正确
<names>
<name>张三</name>
<name>李四</name>
</names>
错误
<name>张三</name>
<name>李四</name>
5,标记的层级称号
有:子标记,父标记,兄弟标记,后代标记,祖先标记
例如:
<persons>
<person>
<name>张三</name>
<age>18</age>
</person>
<person>
<name>李四</name>
<age>20</age>
</persons>
</person>
name是person的子标记.
name是persons的后代标记.
name是age的兄弟标记.
person是name的父标记.
persons是name的祖先标记.
6,标记名称允许重复
7,标记除了开始和结束,还有属性
属性在开始标记中描述,有属性名和属性值构成,此两者为键值对。
格式:
- 可以包含0-N个属性
- 属性名不能重复
- 多个属性之间空格分割
- 属性值必须引号引住
例如:
<persons>
<person id="1001" groupid="01">
<name>张三</name>
<age>18<