第24章 XML与RSS
时间:2007-11-16
来源:互联网
在本章,我们将掌握如下内容:
Ø一个XML文档的结构;
Ø在XML文档上工作所需要的技术;
Ø如何分析一个XML文档,两种方法SAX和 DOM;
Ø使用simple XML文件分析XML的简单方法;
Ø了解RSS技术,以及各个版本的文件解析方法;
Ø当今最流行的技术Webservice与WSDL。
24.1 XML
XML(eXtensible Markup Language)是提供异构平台之间通信的重要通信语言,是不同系统之间沟通的桥梁。
XML本质也是一个文本文件,可以理解为一个描述数据结构的实现。
XML用于在一个文档中存储数据,但是数据存储并不是主要的目的,它的主要目的是通过该通用格式标准进行数据交换和传递。
这个实际的数据包含在结构中,在该文档中标识元素,这个XML文档经过解析后展开这个信息,然后这个信息根据需要再转换到其他格式。
XML支持Unicode编码,可以包含世界各地的任何字符集和二进制数据,并且XML不依赖于任何操作系统平台,是真正的跨平台技术。
XML可以适用于:
Ø结构化数据,如系统配置文件、邮件地址簿;
Ø标准数据交换,用于多个平台或应用系统之间的数据传递,如Webservice;
Ø应用程序数据的通用,由于XML的出现,越来越多的文字处理程序都开始将原来保存为二进制的数据开始转换使用XML保存文档,如微软的Office 2007等;
Ø创建新的标记语言,用户可以建立新的标记,用以实现更多的功能实现或操作的便利,如现在流行的RSS和Atom,就属于开放的标记语言(Meta Language)。
24.1.1 XML的结构与定义
在了解XML的具体格式之前,我们先了解一些原理。
(1)可扩展标记语言(XML)1.0是由W3C机构(http://www.w3.org/tr/wd-xml)定义的XML的语法;
(2)XML包括XML指针标记(Xpointer,http://www.w3.org/tr/1998/wd-xptr-19980303)和XML连接标志(xlink,http://www.w3.org/tr/1998/ wd-xlink-19980303)两个标准定义,左(联系),确定数据来源,它们在XML中取代HTML标记<a>。XPointer类似资源的地址(如何找到它),而xlink用于定义并关联两个或更多的资源。
(3)扩展风格语言(Extensible Style Language,XSL)(http://www.w3.org/tr/wd-xsl)。该标准规定公共方法如何格式化和转化。用于XML同实际环境的输出设备的产品的桥梁。在接下来的一段,如下说明。
Ø使用XPath和XQuery
查询有目的地选择部分结构由一个XML文件提供的查询语言窗口。XQuery的确具有面向数据的结构与优势,因此它与SQL非常相似。XPath技术现在已经面世了一段时间,仍处于发展的阶段。
ØDTD(Document Type Definition,文档类型声明)
DTD的主要功能是定义XML的内容模式,限制XML标记的数据范围,定义属性的数据类型。但由于它不是用XML编写的,因此扩展性比较差,而且只提供了有限的几种数据类型,因此它的作用是有限的。
ØXML Schema
XML Schema的作用和DTD类似。但不同的是,Schema文件所描述的是引用它的XML文件中的元素和属性的具体类型。另外,由于它是由XML编写的,Schema和DTD相比较还有以下优点。
ØXML Schema内容模型是开放的,可以随意扩充,而DTD无法解析扩充的内容。
ØDTD只能把内容类型定义为一个字符串,而XML Schema允许把内容类型定义为整型、浮点型、布尔型或者许多其他的简单数据类型。
ØXML Schema利用Namespaces将文档中特殊的节点与Schema相联系,一个XML文件可以有多个对应的Schema,而一个XML文件只能有一个DTD。
24.1.2 XML与HTML
HTML是一种基本的Web网页设计语言,XHTML是一个基于XML的置标语言,看起来与HTML有些相像,只有一些小的但重要的区别,XHTML就是一个扮演着类似HTML的角色的XML,所以,本质上说,XHTML是一个过渡技术,结合了XML(有几分)的强大功能及HTML(大多数)的简单特性。
2000年底,国际W3C(World Wide Web Consortium)组织公布发行了XHTML 1.0版本。XHTML 1.0是一种在HTML 4.0基础上优化和改进的新语言,目的是基于XML应用。XHTML是一种增强了的HTML,它的可扩展性和灵活性将适应未来网络应用更多的需求。下面是W3C的HTML工作组主席Steven Pemberton回答的关于XHTML的常见基础问题。
XHTML是一种为适应XML而重新改造的HTML。当XML越来越成为一种趋势时,就出现了这样一个问题:如果我们有了XML,我们是否依然需要HTML?为了回答这个问题,1998年5月,我们在旧金山开了两天的工作会议,会议的结论是需要。我们依然需要使用HTML。因为大量的人们已经习惯使用HTML来作为他们的设计语言,而且已经有数以百万计的页面是采用HTML编写的。
XHTML就是一种XML应用。它采用XML的DTD文件格式定义,并运行在支持XML的系统上。这里要感谢XML的Namespaces功能,浏览器制造商不需要再创造新的私有标签(tags),他们只需要在XHTML代码里包含XML代码片段,或者在XML代码里包含XHTML代码片段。
与HTML相比,XHTML的特点如下。
(1)XHTML解决HTML语言所存在的严重制约其发展的问题。HTML发展到今天存在三个主要缺点:不能适应现在越来越多的网络设备和应用的需要,比如手机、PDA、信息家电都不能直接显示HTML;由于HTML代码不规范、臃肿,浏览器需要足够智能和庞大才能够正确显示HTML;数据与表现混杂,如果页面要改变显示,就必须重新制作HTML。因此,HTML需要发展才能解决这个问题,于是W3C又制定了XHTML,XHTML是HTML向XML过度的一个桥梁。
(2)XML是Web发展的趋势,所以人们急切地希望加入XML的潮流中。XHTML是当前替代HTML 4标记语言的标准,只要你小心遵守一些简单规则使用XHTML 1.0,就可以设计出既适合XML系统,又适合当前大部分HTML浏览器的页面。这个意思就是说,你可以立刻设计使用XML,而不需要等到人们都使用支持XML的浏览器。这个指导方针可以使Web平滑过渡到XML。
(3)使用XHTML的另一个优势是它非常严密。当前网络上的HTML的糟糕情况让人震惊,早期的浏览器接受私有的HTML标签,所以人们在页面设计完毕后必须使用各种浏览器来检测页面,看是否兼容,往往会有许多莫名其妙的差异,人们不得不修改设计以便适应不同的浏览器。
(4)XHTML能与其他基于XML的标记语言、应用程序及协议进行良好的交互工作。
(5)XHTML是Web标准家族的一部分,能很好地应用在无线设备等其他用户代理上。
(6)在网站设计方面,XHTML可助你去掉表现层代码的恶习,帮助你养成标记校验来测试页面的工作习惯。
下面的例子显示了一个XML在xhtml文档上的显示。
PHP代码:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>XML 样例</title>
</head>
<body background="bg.png">
<p>
Moved to <a href="http://example.org/">example.org</a>.
<br />
foo & bar
</p>
</body>
</html>
第二行是DOCTYPE,即声明文档的类型,共有三种,分别如下。
Ø过渡型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd">
Ø框架型,主要用于XHTML的框架页面。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-frameset.dtd">
Ø严格型的XML类型定义:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-strict.dtd">
这三种类型告诉浏览器使用什么标准来解析并显示XHTML文档。
在XML/XHTML中,注意要把一些字符,如&、<、>、"和'分别转换为&、@lt;、>、"和'这些HTML实体字符。
将HTML转换为XHTML的技巧如下。
其实不必花太多心思将一些不规范的HTML一点点去修改为XHTML格式,我们可以使用Dreamweaver等工具进行转换。另外,在网上也能找到一些线上工具来帮我们验证和转换XHTML。
作者: PHPChina 发布时间: 2007-11-16
还是发个电子版帮助,方便大家查阅。
这个文件是DOC的,PDF的大一点发不上来,将就一下
如果有要PDF的,给个邮件地址发给大家。
作者: jfcat 发布时间: 2007-11-16
谢谢二位了
作者: Edward_Sim 发布时间: 2007-11-17
作者: 深蓝色 发布时间: 2007-11-17
作者: 深蓝色 发布时间: 2007-11-17
作者: 深蓝色 发布时间: 2007-11-17

作者: blankyao 发布时间: 2007-11-18
不过想想,成就感也是大的。感谢各位。
[ 本帖最后由 phpcast 于 2007-11-19 14:19 编辑 ]
作者: phpcast 发布时间: 2007-11-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28