XML
一、xml概念
XML 即 extensible Markup Language,可扩展标记语言。
二、XML历史
为了能够明确地将标示与内容隔离开,将文件标签的使用方法加以规范。于是第一代标记性语言GML就诞生了。1978年,ANSI将GML加以整理规范,发布成为SGML。但是SGML过于庞大和复杂,难以学习和理解。后来,人们对SGML进行简化,HTML就应运而生。HTML简单虽简单,但也是存在许多缺陷:1、扩充性、弹性、易读性不够好。2.标签只是作为一种语法格式,实际意义不强。3、效能问题,需要下载整份未年检,才能够对文件进行操作。为了解决这些问题,XML就随之衍生出来。简单来说,发展历程就是这个样子的:GML---->SGML----->HTML------>XML。
三、XML用途
1.xml可以用来进行数据传输
2.xml可以用来编写配置文件
...
四、XML基本语法
1.XML文档声明
语法格式: <?xml 版本信息 [编码信息] [文档独立性信息]?> eg:<?xml version="1.0" encoding="utf-8"?>
如果在XML文件中写出了声明就必须包含version属性,这个属性用来告知解释器用那个版本的语法格式去解析该XML文件。在声明之前,不允许出现任何内容,包括空格。
standalone属性:说明文档是否是独立的,默认为yes。yes说明该文档没有依赖外面的文档而可以独立存在。no说明,该文档依赖与外部的某一个文档。
2.XML元素(XML标签)
xml的基本组成单位是元素,元素由标记来定义,标记分为开始标记<>和结束标记</>。属性要写在起始标记内。在XML中,所有元素必须有结束标志。
语法格式: <元素名 属性名=“属性值”> 元素内容 </元素名> eg: <?xml version="1.0" encoding="utf-8"?> <computer> <cpu>cpu是电脑的大脑</cpu> <mainboard>主板是电脑的脊椎</mainboard> </computer>
注意事项:
1、XML的元素中如果没有元素内容,应当这样书写:<元素名/>
eg:<?xml version="1.0" encoding="utf-8"?>
<computer>
<cpu>cpu是电脑的大脑</cpu>
<mainboard>主板是电脑的脊椎</mainboard>
<keyboard/>
</computer>
2、xml标记可以嵌套,但不允许交叉。
eg:<?xml version="1.0" encoding="utf-8"?>
<computer>
<cpu>cpu是电脑的大脑
<mainboard>主板是电脑的脊椎
</cpu>
</mainboard>
</computer>
3.在XML文件中有且必须只有一个根元素。
4.元素内容可以是其他元素标记、简单的文本
3、元素属性
在XML中,属性值必须要用双引号或者单引号引起来,否则会报错,推荐使用双引号。
属性也可以被改为用子元素来描述,但推荐使用子元素描述数据。
eg: <?xml version="1.0" encoding="uitf-8"?> <stu id="6100116003"> <name>刘亦菲</name> <age>18</age> </stu> 将元素属性用子元素表示 <?xml version="1.0" encoding="uitf-8"?> <stu> <id>6100116003</id> <name>刘亦菲</name> <age>18</age> </stu>
5、CDATA节
术语CDATA节指的是不应该由XML解析器进行解析的文本数据。
在XML元素中,出现"<","&"是非法的。
“<”会产生错误,因为解析器会把该字符解释为元素的开始。
“&”会产生错误,因为解析器会把该字符解释为字符实体的开始。
对于某些文本,比如话说js代码,c代码包含大量“<”,“&”字符。为了避免错误,可以将脚本代码定义为cdata
CDATA语法格式:<![CDATA
eg:
<?xml version="1.0" encoding="utf-8"?>
<code>
<![CDATA[1=1&&1=2]]>
</code>
6、XML处理指令
处理指令,简称PI(processing instruction).处理指令用来指挥解析引擎如何解析XML文档中的内容。例如,在XML文档中可以使用XML-stylesheet指令,通知XML解析引擎应用css文件显示XML文档内容。
PI语法格式:<?xml-stylesheet type="text/css" href="路径+文件名.css"> eg: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/css" href="test.css"?> <stu> <name>陈都灵</name> <age>18</age> <addr>南京航空大学</addr> </stu>
处理指令必须以"<?"作为开头,以"?>"做为结尾。
对于xml-stylesheet质量,标签名为中文时,css不起作用。
css代码如下:
name{
font-size:30px;
color:blue;
}
addr{
font-weight:bold;
color:yellow;
}
age{
color:red;
}