XML
1.1 XML文件的作用:
- HTML:Hyper Text Markup Language 超文本标记语言,由各种标签组成。
- xm英文:XML eXtensible Markup Language 可扩展标记语言
可扩展:标签名可以自定义。
标记语言:这门语言完全由标签构成的。
1.1.1 XML作用说明:
1.描述数据之间的关系。
广东省
广州市
佛山市
珠海市
湖南省
长沙市
邵阳市
岳阳市
衡阳市<province name="广东省">
<city>广州市</city>
<city>佛山市</city>
<city>珠海市</city>
</province>
<province name="湖南省">
<city>长沙市</city>
<city>邵阳市</city>
<city>岳阳市</city><city>衡阳市</city>
</province>
2. 用于不同系统之间的数据传输:
1.2 XML与HTML的主要差异:
区别 | HTML | XML |
功能 | 制作网页,主要用于表示层 | 用于配置文件,传递数据 |
大小写 |
不区分大小写<br>或<BR> |
区分大小写,<abc>或<ABC>是不同的两个标签 |
语法严谨 | 不严谨,如果一个标签有开头,没有结尾,浏览器也是可以解析的 | 很严谨,标签的开头和结尾必须配对 |
可扩展性 | 没有扩展性,所有的标签都是固好的,每个标签的功能固定 | 所有的标签都是人为创造的,可以扩展。 |
1.3 案例.XML文件的编写:
需求:编写xml 文档,用于描述人员信息,person 代表一个人员,id 是人员的属性代表人员编号。人员信息包括age 年龄、name 姓名、sex 性别信息。
- 效果:使用浏览器查看person.xml 文件效果如下:
- 实现步骤:
- 步骤1:使用idea 开发工具,选择当前项目鼠标右键新建“”,如图
- 步骤2:编写文件person.xml 文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!--这是一个人-->
<person id="11">
<name>张三</name>
<sex>男</sex>
<age>12</age>
</person>
- 步骤3:点击浏览器运行
2.XML文件组成
2.1 文档声明述:
- XML文件一共由7个组成元素构成:
- 文档声明
- 标签元素 Element
- 属性 Attribute
- 注释 Comment
- 转义字符(实体字符)
- 字符数据区(用于显示大量的特殊字符的时候)
- 处理指令(不常用)
2.2 文档声明:
声明:<?xml version="1.0" encoding="UTF-8" ?> | |
格式:以<?xml 开头 以?>结尾 | |
位置:必须出现在XML文件的第1行 |
2.2.1 声明的三个属性:
文档声明的三个属性 | 说明 |
version | 用于指定XML使用哪个版本,固定的写法1.0 |
enconding | 指定当前XML编码 |
standalone | yes/no 默认是yes,这个XML文件是否是一个单独的文档 |
2.2.2 版本说明:
- W3C 在1988 年2 月发布1.0 版本,2004 年2 月又发布1.1 版本,因为1.1 版本不能向下兼容1.0版本,所以1.1 没有人用。在2004 年2 月W3C 又发布了1.0 版本的第三版。
2.3 标签元素Element:
如:<person> 又称为标签 | |
语法:<开头> 结尾,中间是标签名 | |
主体部分:分为有主体和无主体标签,主体部分可以包含文本或其它的子元素 | |
空元素:无主体标签也必须要关闭。如:<br/> | |
大小写:标签名字是区分大小写的 | |
命名不能有空格,不能有冒号,数字不能开头 | |
根元素:每个XML文档必须有一个根元素,而且只能有一个根元素 |
<?xml version="1.0" encoding="UTF-8" ?>
<!--只能有一个根元素-->
<persons>
<!--这是一个人-->
<person id="110">
<name>张三</name>
<sex/>
<age>20</age>
</person>
<!--这是一个人-->
<person id="110">
<name>张三</name>
<sex/>
<age>20</age>
</person>
</persons>
2.4 属性 Attribute:
如:<person id="110"> | |
属性位置:必须放在开始标签中 | |
属性的值必须使用单引号或双引号引起来 | |
在同一个标签中不能同时出现多个同名的属性 | |
命名中不能出现空格和冒号 |
<person id="110">
</person>
2.5 注释Comment:
<!--注释内容-->与HTML的注释格式相同 | |
嵌套:不可以嵌套 |
2.6 转义字符(实体字符)
某些字符在XML上是有着特殊含义的,比如 > < 在xml文件上就有着特殊含义,如果需要在xml文件上显示这些特殊的符号,那么我们就需要使用该特殊字符的转义字符。
说明 | 字符 | 转义字符 |
小于 | < | < |
大于 | > | > |
双引号 | " |
" |
单引号 | ' | ' |
与符号 | & | & |
空格 | |
2.6.1 转义字符应用示例:
- 需求:有一个<sql>标签,中间包含sql语句,查询所有年龄小于20岁的学生。
- 错误的写法:出现无效的标签名
<?xml version="1.0" encoding="UTF-8" ?>
<sql>
select*from student where age<20
</sql>
- 正确的写法:
<?xml version="1.0" encoding="UTF-8" ?>
<sql>
select*from student where age <20
</sql>
2.7字符数据区CDATA:
- 字符区的内容xml文件的解释器在解释的时候,全部的内容都会当成普通的文本处理,即使遇到了特殊的符号也会只 当成普通的文本去处理。
<![CDATA[文本数据]]> | |
不由XML解析器进行解析的纯文本数据(Unparsed Character Data) | |
格式:<![CDATA[字符数据]]> | |
嵌套:不可以嵌套 |
<sql> select*from student where age < 20 </sql>
<sql>
<![CDATA[select* from student where age<20]]>
</sql>
2.8 处理指令(了解)
<?xml-stylesheet type="text/css" href="文件名.css"?> | |
可以给XML文件设置CSS样式,让它在浏览器上以指定样式来显示,使用比较少。 | |
格式: <?xml-stylesheet 开头 ?> 结尾 | |
作用:处理指令,简称PI(Processing instruction)用来指挥解析引擎如何解析XML文档内容。 |
2.8.1 处理指令示例:
- 现有person.xml 文档内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/css" href="person.css"?>
<person>
<!--年龄-->
<age>20</age>
<!--姓名-->
<name>张三</name>
<sex/>
<!--描述-->
<description>
<![CDATA[我爱Java]]>
</description>
</person>
有样式文件person.css 文件,内容如下:
操作person.xml 文档应用person.css 样式文件:
description{
color:blue;
font-size: 30px;
font-family: 楷体;
}
使用浏览器浏览效果如下:
上一篇: PHP 获取目录的 md5 序列值的方法