xml基础解析目录
1.xml的概念
- 概念:Extensible Markup Language 可扩展标记语言
- 特点:自定义标签
- 功能:
1.作为配置文件
2.在网络中传输 - xml与html的区别:
1. xml标签都是自定义的,html标签是预定义。
2. xml的语法严格,html语法松散
3. xml是存储数据的,html是展示数据
2. 基础语法以及快速入门
- 语法:
1. xml文档的后缀名 .xml
2. xml第一行必须定义为文档声明
3. xml文档中有且仅有一个根标签
4. 属性值必须使用引号(单双都可)引起来
5. 标签必须正确关闭(可以自闭合)
6. xml标签名称区分大小写
- 快速入门:
<?xml version='1.0' ?>//必须是真正意义上的第一行
<users>//根标签
<user id='1'>
<name>zhangsan</name>
<age>23</age>
<gender>male</gender>
<br/>
</user>
<user id='2'>
<name>lisi</name>
<age>24</age>
<gender>female</gender>
</user>
</users>
解析:
- 文档声明:
* 格式:<?xml 属性列表 ?>
* 属性列表:
1. version:版本号,必须的属性
2. encoding:编码方式。告知解析引擎当前文档使用的字符集,
* 默认值:ISO-8859-1
3. standalone:是否独立
* yes:不依赖其他文件
* no:依赖其他文件
- 指令(了解):结合css的
<?xml-stylesheet type="text/css" href="a.css" ?>
- 标签:标签名称自定义
* 规则:
1. 名称可以包含字母、数字以及其他的字符
2. 名称不能以数字或者标点符号开始
3. 名称不能以字母 xml(或者 XML、Xml 等等)开始
4. 名称不能包含空格
- 属性:
id属性值唯一 - 文本:
* CDATA区:在该区域中的数据会被原样展示
* 格式: <![CDATA[ 数据 ]]>
<![CDATA[if(a>b && c>b)]]>
/*
html和xml中有很多特殊字符是无法显示的,要用实体编号
举个栗子(注意分号):
空格 空格
< 小于 <
> 大于 >
& &符号 &
" 双引号 "
CDATA区里面的数据则可以直接显示
*/
3. 约束
图解:
我们知道框架是半成品软件,而程序员通过编写xml给软件解析,相当于把人的语言装换为计算机语言告诉框架:我们想做什么!
但是!:xml的特点是可以自定义标签,那么人家半成品软件怎么知道你的标签是什么?所以才有了约束。
约束就是半成品软件编写的规定了程序员使用它的规则是一份说明文档。
概念:规定xml文档书写的规则
* 作为框架使用者(要求):
1. 能够在xml中引入约束文档
2. 能够简单的读懂约束文档
分类:
- DTD:一种简单的约束技术
- Schema(重要):一种复杂的约束技术
- DTD:
* 引入dtd文档到xml文档中
* 内部dtd:将约束规则定义在xml文档中
* 外部dtd:将约束的规则定义在外部的dtd文件中
* 本地:<!DOCTYPE 根标签名 SYSTEM “dtd文件的位置”>
* 网络:<!DOCTYPE 根标签名 PUBLIC “dtd文件名字” “dtd文件的位置URL”>
内部dtd栗子:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE students SYSTEM "student.dtd">
<!--
外部dtd:
students是xml文档的根标签
"student.dtd"是约束的路径
.dtd是约束的后缀
-->
<students>
<student number="itcast_0001"</