XML
XML
“当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴。有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不仅仅可以用于 WEB,而且可以被用于任何地方。”
XML是什么?
(1)XML,Extensible Markup Language,可扩展标记语言,由W3C组织。
(2)XML的主要用途是用于存储数据,不同于HTML的主要目的是显示数据
(3)xml将数据包装成一定格式,有结构性,能够展现出数据间的关系,也便于维护,所以常见于用作配置文件
举例说明xml文件是如何结构化存储数据的
以下是一个简单的xml文件:
<?xml version="1.0" encoding="UTF-8" ?> <frult> <name>apple</name> <price>15</price> </fruit>
xml文件内容为树形结构。
xml文档中将开始标签到对应的结束标签之间的内容表示为一个元素包含的内容,上面的xml文档中表示了一个fruit元素:
* 尖括号里的"fruit"表示元素名,<fruit>表示开始标签,</fruit>表示结束标签,开始标签到结束标签这一段就表示fruit这个元素的内容
* 子元素可以作为父元素的属性来使用,这和父元素在标签内定义属性效果是一样的,比如:
<?xml version="1.0" encoding="UTF-8" ?> <fruit name="apple" price="15"></fruit>
<?xml version="1.0" encoding="UTF-8" ?> <fruit> <name>apple</name> <price>15</price> </fruit>
上面这两个xml文档存储的信息是一样的。
XML的版本
有1.0和1.1两个版本,通常用的是1.0版本,因为1.1版本不向下兼容
XML的结构和组成
一个XML文件大致由五部分组成:
* 元素
* 属性
* 特殊字符
* PCDATA:Parsed character data, 会被xml解析器解析的字符数据
* CDATA
下面是一个完整的xml文件示例:
<?xml version="1.0" encoding="UTF-8" ?> <class> <teacher id="1"> <!-- 元素用标签定义,从开始标签到结束标签的内容就是一个元素的内容 --> <name>Wang</name> <age>33</age> <!-- 属性位于开始标签内,属性名和属性值之间用=连接,属性值用引号包起来 --> </teacher> <student> <name>chen</name> <!-- 开始标签和结束标签之间的文本部分称为PCDATA,比如chen,14 --> <age>14</age> </student> <student> <name>li</name> <age>15</age> </student> <> <!-- 特殊字符,在xml解析时会进行转义 -->
<![CDATA[ c = a + b; } ]]> <!-- CDATA区,这部分不会被xml解析器解析,会原样显示 --> </class>
XML文件要遵循的语法规则:
(1)要编写一个xml文件,首先在文档的第一列开始写一个文档声明:
<?xml version="1.0" encoding="UTF-8" ?>
文档声明必须写在第一行第一列,否则解析器将无法将文件识别为xml文档
文档声明中的属性:
属性 | 含义 | 属性值 |
version | 规定文档版本 | 1.0 1.1 |
encoding | 规定文档编码 | UTF-8 GBK ISO8859-1等编码 |
standalone | 规定是否需要依赖其他文件 | yes no |
(2)xml文件必须有一个根标签
(3)开始标签必须有对应的结束标签,即有始有终,标签中可以包含标签,但应该合理的嵌套。
这是合理的嵌套:
<fruit><name></name></fruit>
这是错误的嵌套:
<fruit><name></fruit></name>
(4)标签命名时,应该注意:
(i)大小写敏感
(ii)不能以数字或下划线开头
(iii)不能包含空格,换行和冒号
(5)xml中的注释:<!-- 注释内容 -->
* 注意,注释不能嵌套
(6)特殊字符要在xml中显示,需要经过转义,用对应的转义字符来代替
特殊字符 | 对应的转义字符 |
& | & |
< | < |
> | > |
" | " |
' | &apos |