1.XML介绍
1969年 gml (主要目的是要在不同的机器进行通信的数据规范)
1985年 sgml standard generralized markup language
1993年 html(www网)
1998年 xml extensible markup language
Html本身的一些缺陷
1)标记本身不能自定义
<html></html><zhang></zhang>
2)标记本身缺少含义
<Div id="aa">sadsadsadsa</Div>
3)没有国际化
例如不同的浏览器对于同一个Html的解释是不一样的
html-->xhtml-->xml
2.为什么要学习XML
1) 解决程序间数据传输的格式问题(QQ.MSN.旺旺,GTalk) XMPP
2) 做配置文件(xml,ini,propertity)
3) 充当小型数据库
3.XML语法
入门案例 :用xml来记录一个班级的信息
编码问题ANSI
3.1 XML文档结构
文档声明
元素
属性
注释
CDATA区、特殊字符
处理指令(Processing instruction)
*******************************
3.2文档声明
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
version 版本1.0 1.1
encoding 字符编码
standalone 是否独立使用,默认是no 不常用
字符集:如何将字节拼成字符的一个标准
ISO-8859-1 西欧字符集
UTF-8
GBK 中国国家标准(包含中文字符集标准)
GB2312 简体中文字符集国家标准
Big5 繁体中文字符集标准
ANSI:美国国家标准委员会
3.3 元素(标签)
每个xml文档必须有且只有一个根元素
xml元素指文档中出现的标签,标签分为开始和结束标签
一个标签中可以嵌套若干字标签,不允许交叉嵌套
<Student> <aa>aaaaaaaaaaaaaaaaaaaaa</Student></aa>
如果元素中没有值,则可以直接关闭
<姓名> </姓名>
<爱好/>
XML标签中出现的所有空格和换行,都会被解析成标签内容进行处理
<Student>杨过</Student> <Student> 杨过</Student> <Student> 杨过 </Student>
XML元素可以包含字母、数字及其它一些可见字符:
+++++++++++++++++++++++++++++++++++++++++
+ 1.区分大小写 <div> </Div> + + 2.不能以数字或_开头<_Name>aaa</_Name> + + 3.不能包含空格 + + 4.名称中不能有: +
+++++++++++++++++++++++++++++++++++++++++
3.4 属性
属性值用双引号“或者单引号‘分隔
一个元素可以有多个属性,用空格隔开
同一属性名称在同一元素中只能出现一次
属性值不能为< > &
+++++++++++++++++++++++++++++++++++++++++
+ 转义字符 + + < < + + > > + + & & + + " " + + ' ' +
+++++++++++++++++++++++++++++++++++++++++
3.5 注释
<!--这是一个注释-->
注释不能放在标签中
注释不能嵌套
3.6 CDATA节
+有些内容不想让解析引擎解析执行,而是当作原始内容处理,用于
把整段文本解释为纯字符数据而不是标记的情况。
+包含有大量< > & "字符。
+CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是
XML标记
+语法:
<![CDATA[ ...... ]]> +可以输入任何字符(除]]>外) +不能嵌套
3.7处理指令(PI[Processing Instruction])
+ 处理指令用来指挥解析引擎如何解析XML文档的内容
例如:在xml中可以使用xml-stylesheet指令,通知XML引擎解析,
应用css文件显示XML文件内容
<?xml-stylesheet type="text/css" href="my.css"?>
+处理指令必须以<?开头 ?>结尾
*****************************************************************
总结:
必须有XML声明语句
<?xml version="1.0" encoding="gb2312"?>
必须有且仅有一个根元素
标记大小写敏感
属性值用引号
标记成对
空标记关闭<aaa/>
元素正确嵌套
4,XML树结构
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。 一个 XML 文档实例 XML 使用简单的具有自我描述性的语法: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。 下一行描述文档的根元素(像在说:“本文档是一个便签”): <note> 接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body): <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> 最后一行定义根元素的结尾: </note> 从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。 XML 具有出色的自我描述性,你同意吗? XML 文档形成一种树结构 XML 文档必须包含根元素。该元素是所有其他元素的父元素。 XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。 所有元素均可拥有子元素: <root> <child> <subchild>.....</subchild> </child> </root> 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。 所有元素均可拥有文本内容和属性(类似 HTML 中)。 实例 上图表示下面的 XML 中的一本书: <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> 例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中。 <book> 元素有 4 个子元素:<title>、< author>、<year>、<price>。