XML入门

黄舟
黄舟原创
2017-02-20 15:04:271394浏览

XML入门


基本概述


    可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

 

XML的历史起源

   1969年,GML(Generalized Markup Language通用标记语言)---->1985年,SGML(Standard Generalized Markup Language标准通用标记语言)--->1993年,HTML(Hypertext Markup Language超文本标记语言)--->1998年,XML(Extensible Markup Language可扩展标记语言)

 

 

什么是可扩展标记语言?

1、可扩展标记语言是一种很像超文本标记语言的标记语言。

2、它的设计宗旨是传输数据,而不是显示数据。

3、它的标签没有被预定义。您需要自行定义标签。

4、它被设计为具有自我描述性。

5、它是W3C的推荐标准。

 

可扩展标记语言和超文本标记语言之间的差异?

1、它不是超文本标记语言的替代。

2、它是对超文本标记语言的补充。

3、它和超文本标记语言为不同的目的而设计:

4、它被设计用来传输和存储数据,其焦点是数据的内容。

5、超文本标记语言被设计用来显示数据,其焦点是数据的外观。

6、超文本标记语言旨在显示信息,而它旨在传输信息。

7、对它最好的描述是:它是独立于软件和硬件的信息传输工具。

 

为什么需要XML

1、解决了数据传输不规范的问题。

2、可以非常好的描述树形结构的事物。

3、可以用作配置文件。

 

PS:现如今很多很多语言,很多技术都在用XML作为数据传递的标准,所以深刻的理解XML,就相当于掌握了一门通用的数据传输协议。

参考文档:http://www.php.cn/


案例:

<?xml version="1.0" encoding="UTF-8"?>
<class>
	<stu id="a001">
		<name>张三</name>
		<sex>男</sex>
		<age>20</age>
	</stu> 
	<stu id="a002">
		<name>李四</name>
		<sex>女</sex>
		<age>18</age>
	</stu>
</class>


XML基本语法

一个XML文件可分为如下几部分内容:

文档声明 、元素、属性、注释  、CDATA区 ,特殊字符 、处理指令(processing instruction) 

基本语法:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 上面是文档声明 - ->
<?xml-stylesheet type="text/css" href=”XML2.css”?>
<!-- 上面是处理指令 - ->
<根元素>
    <!-- 注释 - ->
    <![CDATA[     CDATA区,可以是任意字符    ]]>
	<元素 属性=”属性值”>
		<元素>元素内容</元素>
		<空元素/>>
	</元素> 
</class>


文档声明

<?xml version="1.0" encoding=“编码方式"  standalone="yes|no"?>

XML声明放在XML文档的第一行

XML声明由以下几个部分组成:

version - -文档符合XML1.0规范

encoding - -文档字符编码,比如”utf-8”

standalone - -文档定义是否独立使用

standalone="yes

standalone=no”   默认

 

PS:虽说现在XML出了2.0版了,但是现在大多还是用1.0版。

 

元素

基本语法:

<元素>元素内容</元素>
<元素/>


注意事项:

1每个XML文档必须有且只有一个根元素。

2根元素是一个完全包括文档中其他所有元素的元素。

3根元素的起始标记要放在所有其他元素的起始标记之前。

4根元素的结束标记要放在所有其他元素的结束标记之后。

5XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式,例如:

    包含标签体:3499910bf9dac5ae3c52d5ede73834851235db79b134e9f6b82c0b36e0489ee08ed

    不含标签体的:3499910bf9dac5ae3c52d5ede73834855db79b134e9f6b82c0b36e0489ee08ed, 简写为:7d01d0a03a49fceb57d12197d8d196cb

6一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套 ,例如:

        3499910bf9dac5ae3c52d5ede7383485hello a4b561c25d9afb9ac8dc4d70affff419world5db79b134e9f6b82c0b36e0489ee08ed0d36329ec37a2cc24d42c7229b69747a 

7对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。

例如:

        3499910bf9dac5ae3c52d5ede73834851235db79b134e9f6b82c0b36e0489ee08ed3499910bf9dac5ae3c52d5ede7383485   123   5db79b134e9f6b82c0b36e0489ee08ed意义是完全不同的。

8一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:

    1---区分大小写,例如,64e5601d0a941f4972a2954192bdae18e388a4556c0f65e1904146cc1a846bee是两个不同的标记。

    2---不能以数字或"_" (下划线)开头。

    3---不能包含空格。

    4---名称中间不能包含冒号(:)。

9、元素、标签、节点意义都是一样的。


属性

基本语法

<元素 属性1=”属性值” 属性2=”属性值”>元素内容</元素>


注意事项:

1属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔)

2一个元素可以有多个属性,它的基本格式为:

3属性名称在同一个元素标记中只能出现一次

4属性值不能包括83992e84119b8649428fe2de73af99ef, &之类的特殊字符,否则需要使用转义字符。



注释


    这个和HTML一样,都是c2a54aadee89294d3edc03e4891272d5,同样也不能注释嵌套,不能放在元素名中间。

 

CDATA

    有些内容可能不想让解析引擎解析执行,而是当作原始内容处理,用于把整段文本解释为纯字符数据而不是标记的情况。包含大量509d37b71e5ee94f7a50f124edbc8c3f&或者"字符。CDATA区中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记。

 

PSCDATA区可以用于传递特殊字符,传递文件数据。可以通过将图片这类二进制文件以byte[]的形式放入CDATA区中,需要使用时在以byte[]的方式读出。

 

处理指令

    处理指令,简称PI (Processing Instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

    处理指令必须以“0f7ea912b4bec2649ab2166088880186”作为结尾,XML声明语句就是最常见的一种处理指令。 例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。


案例:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="XML2.css" type="text/css"?>
<class>
	<student>
		<name>张三</name>
		<sex>男</sex>
		<age>20</age>
	</student>
	<student>
		<name>李四</name>
		<sex>女</sex>
		<age>18</age>
	</student>
</class>


XML2.css

name {
	font-size: 20px;
	font-weight: bold;
	color: red;
}

sex{
	font-size: 30px;
	font-weight: bolder;
	color: blue;
}

age{
	font-size: 25px;
	font-weight: bolder;
	color: blue;
}


小结

1XML必须有且仅有一个根元素

2、元素大小写敏感

3、元素不能以数字,下划线开头

4属性值用引号

5、属性值如果有特殊字符要用实体表示

6、同一元素的属性必须唯一,属性值可以不唯一

7、非空元素标记必须成对

8空标记要写关闭符号

9元素必须正确嵌套

10、元素中可以包含字母、数字或者其它字符(支持中文)

11、元素中不能含空格

12、元素中不能含冒号(注:冒号留给命名空间使用

 以上就是XML入门的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn