1.XML
1)为什么需要XML
2)XML用于解决什么问题
-现在主要用于做配置文件
3)一个简单的xml文件
<?xml version="1.0" encoding="utf-8" ?>
<!--
1.xml:表示该文件的类型 xml
2.version="1.0":版本
3.encoding="utf-8":指定文件的编码
4.students:root元素/根元素,只能存在一个,自己来决定
5.<student></student>:表示students一个子元素,可以有多个
6.id:就是属性 name、age、gender是student的子元素
-->
<students>
<student id="01">
<name>Tom</name>
<gender>男</gender>
<age>18</age>
</student>
<student id="02">
<name>mary</name>
<gender>女</gender>
<age>19</age>
</student>
</students>
4)xml的语法
(1).xml的结构(分为五个部分)
1.文档声明
<?xml version="1.0" encoding="utf-8" ?>
1)XNL声明放在XML文档的第一行
2)XML声明由如下几个部分组成;
3)version:文档符合XML1.0规范,我们学习1.0
4)encoding:文档字符编码,如UTF-8
2.元素
1)元素语法的要求
-每一个XML文档有且只有一个根元素
-根元素是一个完全包括文档中其他所有元素的元素
-根元素的起始标签要放在其他所有标签的起始标签之前
-根元素的结束标签要放在其他所有标签的结束标签之后
-应用实例:创建:语法/students02.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--
1.每一个XML文档有且只有一个根元素
2.根元素是一个完全包括文档中其他所有元素的元素
3.根元素的起始标签要放在其他所有标签的起始标签之前
4.根元素的结束标签要放在其他所有标签的结束标签之后
5.XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写方式:
1)包含标签体:<a>www.sohu.con</a>
2)不包含标签体:<a></a>简写为<a/>
6.一个标签内也可以嵌套若干个子标签。但所有标签必须要合理嵌套,绝对不允许交叉嵌套
7.在很多时候,标签、元素、节点是同一个意思
-->
<students>
</students>
2)XML元素命名规则
<?xml version="1.0" encoding="UTF-8" ?>
<!--
1.区分大小写,例如<P>和<p>是两个不同标记。(前面的是大写,后面的是小写)
2.不能以数字开头
3.不能包含空格
4.名称中间不能包含冒号(:)
5.如果标签单词需要间隔,建议使用下划线,例如:<book_title>hello</book_title>
-->
<student>
</student>
3.属性
1)属性介绍
<student ID="100">
<name>TOM</name>
</student>
2)属性值用双引号("")或单引号('')分隔(如果属性值中有'',用""分隔,如果属性值中有"",用''分隔)
3)一个元素可以有多个属性,它的基本格式为<元素名 属性名="属性值">
4)特定的属性名称在同一个元素标记中只能出现一次
5)属性值不能包含&
6)属性应用实例
<?xml version="1.0" encoding="utf-8" ?>
<!--
1)属性值用双引号("")或单引号('')分隔(如果属性值中有'',用""分隔,如果属性值中有"",用''分隔)
2)一个元素可以有多个属性,它的基本格式为<元素名 属性名="属性值">
3)特定的属性名称在同一个元素标记中只能出现一次
4)属性值不能包含&
-->
<student>
<!--
举例:id="01" 也是正确的
如果属性值有" 则使用' 包括id="xxx'yyy"
如果属性值有' 则使用" 包括id='xxx"yyy'
属性名在同一个元素标记只能出现一次:<student id="01" id="03">是错误的
属性值不能包含&,例如:<student id="&01">是错误的
-->
</student>
4.注释
1)<!--这是一个注释-->
2)不能把注释放在标签中间,例如:<name<!--the name-->>TOM</name>
3)注释不能嵌套
4)注释中间不能出现--
5)可以在除标记以外的任何地方放注解
5.CDATA区、特殊字符
说明:有些内容不想让解析引擎执行,而是当作原始内容处理(即当作普通文本),可以用CDATA包裹起来,CDATA节中的所有字符都会本当作简单文本,而不是XML标记
1)语法
<![CDATA[这里可以把你输入的字符原样显示,不会解析xml]]>
2)可以输入任何字符(“[]>”除外)
3)不能嵌套
4)应用实例
<?xml version="1.0" encoding="utf-8" ?>
<!--
<![CDATA[这里可以把你输入的字符原样显示,不会解析xml]]>
-->
<student>
<student id="01">
<name>Tom</name>
<gender>男</gender>
<age>18</age>
<!--
举例说明:
下面是一段js代码,直接放在<code></code>标签中,语法错误
使用CDATA节来处理即可
<script data-compress=strip>
function h(obj){
obj.style.behavior='url*(#dedfault#homepage)';
ar a=obj.setHomePage('//www.baidu.com/');
}
</script>
-->
</student>
<student id="02">
<name>mary</name>
<gender>女</gender>
<age>19</age>
<code>
<!-- 该代码尽量不要运行 如果希望把某些字符串当作文本处理,可以使用CDATA -->
<![CDATA[
<script data-compress=strip>
function h(obj){
obj.style.behavior='url*(#dedfault#homepage)';
ar a=obj.setHomePage('//www.baidu.com/');
}
</script>
]]>
</code>
</student>
</student>
5.转义字符
1)对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理
更多转义字符可以直接百度
2)应用实例
<?xml version="1.0" encoding="UTF-8" ?>
<!--
对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理
-->
<students>
<student id="01">
<name>Tom</name>
<gender>男</gender>
<age>18</age>
<!--
使用转义字符表示一些特殊的字符
<resume>年龄>10 &版权</resume>
//大于号和标签号一样,可能导致标签直接结束,所以可以替换为转义字符
-->
<resume>年龄>10</resume>
</student>
<student id="02">
<name>mary</name>
<gender>女</gender>
<age>19</age>
</student>
</students>
6.小结
一个正规的xml文档要遵循如下原则
1)XML声明语句:<?xml version="1.0" encoding="UTF-8" ?>
2)有且只有一个根元素
3)标记大小写敏感(区分大小写)
4)属性值用引号
5)标记成对出现
6)空标记关闭
7)元素正确嵌套