XML的概述

XML(eXtensibleMarkup Language),扩展性标记语言,它是用来描述其他语言的语言。它允许用户设计自己的标记。XML是由W3C(WorldWide
月发布的一种标准;它的前身是SGML(StandardGeneralized
MarkupLanguage,标准通用置标语言)。XML产生的原因是为了补充HTML语言的不足,使网路语言更规范化、多样化。

HTML语言被称为第一代web语言,现在的版本为4.0,以后将不再更新,取而代之的是XHTML。而XHTML正是根据XML来制定的。XML有如下特点:

)易用性:XML可以使用多种编辑器来进行编写,包括记事本等所有的纯文本编辑器。

)结构性:XML是具有层次结构的标记语言,包括多层的嵌套。

)开放性:XML语言允许开发人员自定义标记,这使得不同的领域都可以有自己的特色方案。

)分离性:XML语言将数据的显示和数据内容分开保存,各自处理。使得基于XML的应用程序可以在XML文件中准确高效地搜索相关的数据内容,忽略其他不相关部分。

XML语法

XML文档结构

在开始讲解XML语法之前,先来熟悉一下XML的文档结构,代码如下:

<?xmlversion="1.0" encoding="gb2312"standalone="yes"?>

<?xml-stylesheet type="text/css"href="Book.css"?>

<!--  下面的标签<计算机图书>就是这个XML文档的根目录 
-->

<计算机图书>

<PHP>

<书名>PHP程序开发范例宝典</书名>

<价格 单位="元/本">89.00</价格>

<出版时间>2007-09-01</出版时间>

</PHP>

</计算机图书>

这就是一个XML文档的最基本的元素,包括XML声明、处理指令(PI)、注释、元素等等,下面就来一一说明。

XML声明

XML声明在文档中只能出现一次,而且必须是在第一行,连空行也不允许存在。XML声明包括了XML版本、编码等信息。示例如下:

<?xml version="1.0"encoding="gb2312" standalone="yes"?>

XML声明的各部分的含义如表所示。

处理指令

顾名思义,就是如何处理XML文档的指令。有一些XML分析器可能对XML文档的应用程序不做处理,这时可以指定应用程序按照这个指令信息来处理,然后在传给下一个应用程序。XML声明其实就是一个特殊的处理指令。处理指令的格式为:

<?处理指令名 处理执行信息?>

例如:下面创建一个处理指令,代码如下。

<?xml-stylesheettype = "text/css"href="Book.css"?>

具体含义是:

xml-stylesheet:样式表单处理指令。指明了该XML文档所使用的样式表。

type="text/css":设定了文档所使用的样式是css。

href="Book.css":设定了样式文件的地址。

注释

XML中的注释和HTML是一样的,使用“<!--”和“-->”作为开始和结束界定符。注释的用法十分简单,这里只介绍一下在使用注释时要注意的几个问题。

l  不能出现在XML声明之前。
l  不能出现在XML元素中间。如:<computer_book<!-- 
这是错误的 -->>。
l  不能出现在属性列表中。
l  不可嵌套注释。
l  注释内容可以包含“<”“>”“&”这些特殊字符,但不允许有“--”。

XML元素

元素是每个XML文档不可或缺的部分,也是文档内容的基本单元。每个XML文档至少要包含一个元素。一般的元素由三部分组成,格式如下:

<标签>数据内容</标签>

其中<标签>为元素的开始标签,</标签>是元素的结束标签,中间的数据内容是元素的值。这里要注意的是标签的写法:

l  <标签>和</标签>都是成对出现的,这是XML严格定义的。不允许只有开始标签而没有结束标签,对于空元素,即两个标签之间没有数据,这时可以使用简短形式:<标签/>。
l  英文标签名称只能由下划线“_”或英文字开头,中文标签名称只能使用下划线“_”或汉字开头。名称中只能有下划线“_”、连接符“-”、点“.”和冒号“:”几个特殊字符,也可以使用指定字符集下的合法字符。
l  <标签>中不能有空格。<标签>或</标签>都是错误的。
l  <标签>对英文大小写很敏感。如<name>和<Name>是两个不同的标签。

XML属性

XML属性是XML元素中的内容,是可选的。XML属性和HTML中的属性在功能上十分的相似,但XML属性在格式上更加严格,使用上更加灵活。XML属性的格式为:

<标签 属性名="属性值"属性名=""…>内容</标签>

这里要注意:

l  属性名和属性值必须是成对出现的,不像HTML中有的属性,可以不需要值而单独存在。对于XML来说这是不可能的。如果没有值,写成“属性名=""”也可以。
l  属性值必须用引号括起来。通常使用双引号,除非属性值本身包含了双引号,这时可以用单引号来代替。

使用CDATA标记

在XML中对于特殊字符“>”、“<”和“&”的输入需要使用实体引用来处理,实体引用就使用“&…;”的形式来代替那些特殊字符。表是XML中所用到的实体引用。

CDATA标记的格式如下:

<![CDATA[

]]>

例如:创建一个XML文件,并且通过实体引用和CDATA标记来显示特殊符号,其代码如下:

<?xmlversion="1.0" encoding="GB2312"?>

<exam>

<实体引用>这里必须使用引用“&lt;”、“&gt;”、“&amp;”</实体引用>

<CDATA标记>

<![CDATA[

这里可以正常输出“<”、“>”、“&”。

]]>

</CDATA标记>

</exam>

XML命名空间

命名空间通过在元素前面增加一个前缀来保证元素和属性的唯一性。它的最重要用途是用于融汇不同的XML文档。命名空间的格式为:

<标签名称 xmlns:前缀名称="URL">

例如:在创建的XML文件中,对元素<外语图书>使用命名空间,代码如下。

<?xml version="1.0"encoding="gb2312" standalone="yes"?>

<外语图书 xmlns:frn="http://www.bccd.com/foreign">

<frn:English>

<frn:书名>许国璋英语</frn:书名>

<frn:价格货币种类="RMB"单位="4本">80.00</frn:价格>

<frn:出版时间>1996-05-10</frn:出版时间>

</frn:English>

</外语图书>

版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226

PHP与XML技术的更多相关文章

  1. XML技术的应用

    XML技术的发展历史:gml--->sml--->html--->xml(可扩展标记语言). HTML和XML技术的区别: 1.HTML技术的标签不能自己定义,必须使用规定语法编写: ...

  2. C# XML技术总结之XDocument 和XmlDocument

    引言 虽然现在Json在我们的数据交换中越来越成熟,但XML格式的数据还有很重要的地位. C#中对XML的处理也不断优化,那么我们如何选择XML的这几款处理类 XmlReader,XDocument ...

  3. 打造完美的xml技术解决方案(dom4j/xstream)

    转: XML 技术是随着 Java 的发展而发展起来的.在 XML 出现之前对于简单的数据格式通常是存储在 ini 配置文件等文本文件中,复杂的格式则采用自定义的文件格式,因此对于每种文件格式都要有专 ...

  4. xml技术DTD约束定义

    XML约束 在XML技术中,可以编写一个文档来约束一个xml文档的书写规范,这称之为XML约束为什么需要XML约束? class.xml <stu><面积>?人怎么会有面积元素 ...

  5. 【Java】Java XML 技术专题

    XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...

  6. JavaEE:Eclipse开发工具的相关使用和XML技术

    Eclipse开发工具的知识点1.工程的属性(properties)1)Text file encoding  工程编码(在导入其他工程时,注意编码类型一致)2)Java build path设置cl ...

  7. XML技术思想

    百科名片: 可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  8. 14.PHP_PHP与XML技术

    PHP与XML技术 先把概念粘过来: 先来个基本模板: <?xml version="1.0" encoding="gb2312" standalone= ...

  9. XML技术的作用?

    XML技术用于数据存储.信息配置.数据交换三方面. 可以将数据存储在XML中,通过节点.元素内容.属性标示数据内容及关系. 可以使用XML很方便的做信息配置,软件的各种配置参数和对象关系都存贮在XML ...

  10. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

随机推荐

  1. 【Qt编程】基于Qt的词典开发系列<十三>音频播放

    在上一篇文章中,我是在Qt4平台上调用本地发音的,后来由于用到JSON解析,就将平台转到了Qt5,因为Qt5自带解析JSON的类.然后发现上一篇文章的方法无法运行,当然网上可以找到解决方法,我在这里直 ...

  2. SharePoint 2010 之寻找页面布局

    习惯了2007的页面布局,虽然感觉不是太好用,尤其以开始接触时非常不理解页面布局和页面的关系,但是后来理清了,感觉还是很好用的,尤其对于相同格式的网站,修改布局而不改页面的情况,还是非常有效的,好了, ...

  3. rails将类常量重构到数据库对应的表中之三

    经过博文之一和之二的重构,貌似代码表现的还不错,正常运行和test都通过鸟,但是,感觉告诉我们还是有什么地方不对劲啊!究竟是哪里不对劲呢?我们再来好好看一下. 我们把数据库表中的支付方式集合直接放在实 ...

  4. VS2010断点调试技巧

    设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点.快捷键F9.   启动调试:按F5或者点击左边红框中的按钮.右边框是开始执行(不调试)Ctrl+F5. 调试工具栏:下面是工具 ...

  5. Fiddler - 工具配置及在ios抓取不了https的解决方法

    一.首先,官网下载最新版fiddler工具: https://www.telerik.com/fiddler 二.打开fiddler,点击Tools - Options 我电脑上的各项配置如下图(也可 ...

  6. the import java.util.* cannot be resolve,怎么解决

    我碰到这个问题是因为重装系统后,原先的JDK6换成了JDK7, Eclipse中的旧项目中jsp文件的此类import出现错误提示.在以下页面找到解决方案,专贴出来: http://www.myexc ...

  7. 基于opencv下对视频的灰度变换,高斯滤波,canny边缘检测处理,同窗体显示并保存

    如题:使用opencv打开摄像头或视频文件,实时显示原始视频,将视频每一帧依次做灰度转换.高斯滤波.canny边缘检测处理(原始视频和这3个中间步骤处理结果分别在一个窗口显示),最后将边缘检测结果保存 ...

  8. HTML结构及基础语法

    一.HTML结构 <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...

  9. js基础进阶--关于Array.prototype.slice.call(arguments) 的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn Array.prototype.slice.call(arguments)的作用为:强制转化arguments为数组格式,一般出 ...

  10. Code Review Checklist

    左按:当年需要一份详细的代码评审清单作参考,翻译了此文. 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] General Code Smoke Test 通用测试 Comm ...