搜索

XML入门

Feb 20, 2017 pm 03:04 PM

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
XML在RSS中的优势:技术深度潜水XML在RSS中的优势:技术深度潜水Apr 23, 2025 am 12:02 AM

XML在RSS中具有结构化数据、可扩展性、跨平台兼容性和解析验证的优势。1)结构化数据确保内容的一致性和可靠性;2)可扩展性允许添加自定义标签以适应内容需求;3)跨平台兼容性使其在不同设备上无缝工作;4)解析和验证工具确保Feed的质量和完整性。

XML中的RSS:揭示内容联合的核心XML中的RSS:揭示内容联合的核心Apr 22, 2025 am 12:08 AM

RSS在XML中的实现方式是通过结构化的XML格式来组织内容。1)RSS使用XML作为数据交换格式,包含频道信息和项目列表等元素。2)生成RSS文件需按规范组织内容,发布到服务器供订阅。3)RSS文件可通过阅读器或插件订阅,实现内容自动更新。

超越基础:高级RSS文档功能超越基础:高级RSS文档功能Apr 21, 2025 am 12:03 AM

RSS的高级功能包括内容命名空间、扩展模块和条件订阅。1)内容命名空间扩展RSS功能,2)扩展模块如DublinCore或iTunes添加元数据,3)条件订阅根据特定条件筛选条目。这些功能通过添加XML元素和属性实现,提升信息获取效率。

XML主链:RSS提要如何结构XML主链:RSS提要如何结构Apr 20, 2025 am 12:02 AM

rssfeedsusexmltoStructureContentUpdates.1)xmlProvidesHierarchicalStructurefordata.2)theelementDefinestHefEed'sIdentityAndContainsElements.3)ElementsRementsRementsRepresSentividividividualContentpieces.4)rsssissisexisextensible,允许custemements.5)5)

RSS和XML:了解Web内容的动态二重奏RSS和XML:了解Web内容的动态二重奏Apr 19, 2025 am 12:03 AM

RSS和XML是用于网络内容管理的工具。RSS用于发布和订阅内容,XML用于存储和传输数据。它们的工作原理包括内容发布、订阅和更新推送。使用示例包括RSS发布博客文章和XML存储书籍信息。

RSS文档:Web联合组织的基础RSS文档:Web联合组织的基础Apr 18, 2025 am 12:04 AM

RSS文档是基于XML的结构化文件,用于发布和订阅频繁更新的内容。它的主要作用包括:1)自动化内容更新,2)内容聚合,3)提高浏览效率。通过RSSfeed,用户可以订阅并及时获取来自不同来源的最新信息。

解码RSS:内容提要的XML结构解码RSS:内容提要的XML结构Apr 17, 2025 am 12:09 AM

RSS的XML结构包括:1.XML声明和RSS版本,2.频道(Channel),3.条目(Item)。这些部分构成了RSS文件的基础,允许用户通过解析XML数据来获取和处理内容信息。

如何解析和利用基于XML的RSS提要如何解析和利用基于XML的RSS提要Apr 16, 2025 am 12:05 AM

RSSFEEDSUSEXMLTOSYNDICATECONTENT; PARSINGTHEMINVOLVESLOADINGINGINGINGINSSTRUCTURE,andExtractingData.ApplicationsIncludeBuildBuildingNewSagGregatorSaterNewSagGregatorSator andTrackingPodcastepodcastepisodes。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具