<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/hellosomith" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/hellosomith" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 29 Sep 2011 23:53:59 GMT</lastBuildDate><title>技术领先 引领时尚</title><description>一起快乐 分享的快乐！</description><link>http://492127285jin.blog.163.com</link><language>zh-CN</language><pubDate>Thu, 09 Feb 2012 16:32:26 GMT</pubDate><dc:creator>492127285jin</dc:creator><image><title>技术领先 引领时尚</title><url>http://img.bimg.126.net/photo/XrwR5ZkTNpYLDxLr38VcBA==/229120631043327823.jpg</url><link>http://492127285jin.blog.163.com</link></image><item><title>rss 博客技术</title><link>http://492127285jin.blog.163.com/blog/static/38851066201021324339215</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T07:53:59+08:00</dcterms:modified><description>&lt;div&gt;&lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;A href=&quot;http://xiongliuzhao521.blog.163.com/blog/static/15889820200981711957423&quot;  &gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;RSS入门到精通(1)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.&amp;nbsp;&amp;nbsp; 令网络跳动的力量&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1. RSS&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最近在浏览许多新闻网站时，用户都会惊奇的发现一些写有“XML”字样的桔黄色图标频繁出现。如果使用普通浏览器的用户点击后只能看到一个写满了天书的页面。这是一种最近十分流行的网络技术，被称为RSS（Really &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Simple &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Syndication）。通过专用的RSS阅读工具，用户能够快速浏览大量的网页内容，如新闻或者网络日志。最初RSS主要是应用在民间的网络日志之中。但由于其易用性迅速受到了欢迎。如今Businessweek、Forbes和New &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; York Times等著名传统媒体的网站中，也都添加了RSS功能。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用RSS阅读工具的用户可以订阅自己关注的网站的内容，点击那个桔黄色的图标便可以得到RSS种子并且保存到阅读工具中。RSS阅读工具会自动连接那些网站检查并显示更新内容的标题和摘要内容。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 看起来时髦、新奇的RSS技术其实早在1997年左右就已经开发出来，但直到今天才焕发光彩。这其中一个很大的原因是数百万网络日志的出现造成了用户的阅读困难。越来越多的公司开始关注RSS技术，除了那些开发RSS阅读软件的厂商外，苹果公司的Safari浏览器就内置了RSS阅读工具。而且微软也计划在未来版本的IE浏览器中支持RSS阅读。而另一些RSS服务提供商则支持在线RSS阅读功能，Bloglines是它们中最有名的家伙。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.2. Tag&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 同RSS技术类似，Tag也是用来对付越来越多的网络信息的。而它的功能则主要是内容分类。用过Gmail的用户应该熟悉Tag，在信箱中用户可以为每封邮件添加多个关键字分类信息，比如工作、广告、计划书、已完成等随心所欲的分类。而检索时可以按照其中任何一个或者几个Tag关键字进行搜索。这极大丰富了检索信息的方法和结果的准确性。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 例如我曾经在某个网站上看到了一篇关于效力于NBA骑士队的立陶宛球星伊尔戈斯卡斯讲述他家乡的故事，而当我想再次阅读这篇文章时却无法记起这个立陶宛人拗口的名字，而对他的家乡是哪儿也毫无印象。我如何搜索得到这篇文章呢？Tag就能够帮助我解决这个问题，当我看到这篇文章的时候，可以把它的链接保存在del.icio.us等网络书签中，然后为其添加一个NBA的Tag。这样日后当我检索的时候就能够轻松的把它找到。忘掉那些存储文件夹吧！&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yahoo公司目前十分重视Tag技术，因为它代表了一种新的组织和管理在线信息的方式。它不同于传统的、针对文件本身的关键字检索，而是一种模糊化、智能化的分类。这更加符合用户使用的顺滑感和提高检索结果的相似程度，将会极大的促进用户查询数字文件的能力，照片、视频等多媒体数字文件都可以打上Tag的标签进行管理。Tag本身绝对无法取代Yahoo和Google这样的搜索引擎，但如果日后Tag的应用逐渐增长，那么搜索引擎的使用量一定会减少。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.3. Wiki&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 几乎所有人了解Wiki都是从网络上开放百科全书Wikipedia,开始的，在这之前没有人见过这样一个任何人都可以动手修改的网站。从2001年开始，成千上万名志愿者以50种语言完成了这部网络百科全书中500万篇文章，这一切都得感谢Wiki！&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wiki一词来源于夏威夷语的“wee kee wee &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kee”，原本是“快点快点”的意思。沃德·坎宁安在1995年创建了Wiki的概念和相应的服务系统。这套系统允许那些对编程语言一无所知的人们随意对一个网站内容进行添加、修改。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 而如今有软件开发商根据Wiki的理论和机制开发出了协同工作软件。IBM公司的Lotus &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Notes就属于同类产品。TWiki公司开发的开放源代码Wiki软件自2001年至今已有3.5万人次下载。而这些被下载的程序有2/3用于商业用途，使用者包括迪斯尼、SAP和摩托罗拉这样声名赫赫的公司。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.&amp;nbsp;&amp;nbsp; 什么是RSS？&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 也许大家是第一次听到RSS这个概念，那什么是RSS呢？RSS是站点用来和其他站点之间共享内容的一种简易方式（也叫聚合内容），通常被用于新闻和其他按顺序排列的网站，例如Blog。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一段项目的介绍可能包含新闻的全部介绍等。或者仅仅是额外的内容或者简短的介绍。这些项目的链接通常都能链接到全部的内容。网络用户可以在客户端借助于支持RSS的新闻聚合工具软件，在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 说得更加简单一点，RSS就是一种用来分发和汇集网页内容的XML格式！如果你还是不太明白，没有关系，RSS是什么其实基本就不重要，重要的是RSS可以做什么，下面我们就来了解一下，RSS能给我们带来什么？&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.1. 小知识&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　BLOG：BLOG是Web &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log的简称。在国内，人们通常称它为博客。它是一种作者与读者以日记风格进行交互的中介。在软件社区，人们以博客形式来共享观念与思想变得越来越流行，人们开始以博客的形式互相学习，博客已经成了一个技术交流的场所！如：&lt;A rel=&quot;nofollow&quot; href=&quot;http://blogs.msdn.com/&quot;  &gt;http://blogs.msdn.com&lt;/A&gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 就是MSDN上的一个blogging。而在国内博客中国也已经越来越有名。&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.blogchina.com/&quot;  &gt;http://www.blogchina.com&lt;/A&gt;。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　XML：XML是Extensible Markup Language的简写，一种扩展性标识语言。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.&amp;nbsp;&amp;nbsp; RSS可以干什么？&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 订阅BLOG(BLOG上，你可以订阅你工作中所需的技术文章；也可以订阅与你有共同爱好的作者的日志，总之，BLOG上你对什么感兴趣你就可以订什么)。2. &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 订阅新闻(无论是奇闻怪事、明星消息、体坛风云，只要你想知道的，都可以订阅)。你再也不用一个网站一个网站，一个网页一个网页去逛了。只要这将你需要的内容订阅在一个RSS阅读器中，这些内容就会自动出现你的阅读器里，你也不必为了一个急切想知道的消息而不断的刷新网页，因为一旦有了更新，RSS阅读器就会自己通知你！4. &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 怎样发布RSS内容&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先你需要理解一点支持RSS的技术。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.RSS是包含你要发布的信息（标题、简介、内容等信息）的标准的XML文件。它遵循所谓的RSS技术规范定义的格式。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.RSS文件本身定义的是内容，并没有定义内容的显示方式。通常要通过RSS阅读器来解析内容，并显示出来。看天下RSS阅读器就是用来解读RSS内容的。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.由于Blog等的发展，使得创建RSS文件变得很容易。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 怎样让更多的人接收到你的RSS？到目前为止，大多数人并不对RSS很熟悉。但由于RSS避免了无用的广告和垃圾信息，这种方式在逐渐地普及开来。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 那么你在采用RSS的时候，就应该尽可能地给你的用户讲解什么是RSS，以及它有哪些优点。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.&amp;nbsp;&amp;nbsp; RSS阅读器&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目前，RSS阅读器基本可以分为两类。第一类大多数阅读器是运行在计算机桌面上的单机应用程序，通过所订阅网站和博客(blog)中的新闻供应，可自动、定时地更新新闻标题。在该类阅读器中，有Awasu、FeedDemon和RSSReader这三款流行的单机版阅读器都提供免费试用版和付费高级版，另外，新华网在不久前也推出了一款RSS阅读器，它不仅是完全是中文界面，而且目前还是完全的免费软件！(后面我们就将以这款软件为例，为大家介绍怎样来使用RSS阅读器)。第二类新闻阅读器通常是内嵌于已在计算机中运行的应用程序中。例如，NewsGator内嵌在微软的Outlook中，所订阅的新闻标题位于Outlook的收件箱文件夹中。另外，Pluck内嵌在Internet &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Explorer浏览器中！6.&amp;nbsp;&amp;nbsp; RSS“推” 技术远胜于电子邮件的推广模式&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 几乎每一个内容提供者都有过用一个长长的电子邮件地址簿发布新信息的经验。RSS“推”技术将从此改变这个现状。利用RSS阅读器接收“推”来的新信息不仅消除了“垃圾邮件”充斥邮箱的烦恼，而且使内容接收者更方便地阅读和管理信息。因此，尽管利用电子邮件的推广方式还将在很长时间内存在，用户将越来越偏好使用RSS“推” &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 技术的内容提供商。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS优于电子邮件还体现在网络安全上。由于没有不速之客的“垃圾邮件”，也没有邮件提供商(象YAHOO，MSN)的“强力过滤”，用户将有十分的信心他们看到的就是他们订阅的，不多也不少。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不仅如此，即使到达用户信箱中的合法推广信息也还有一大部分由于与少数“漏网”的垃圾邮件和众多其它邮件的混合而被用户忽视甚至直接删除。更不用说当用户因为信箱装满了垃圾而转用新地址时，绝大多数情况下是想不起来在所有内容提供者那里更新地址的。这些无疑都是对内容提供者来说巨大的浪费！&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我的朋友们有很多是网上内容发布者，他们都发现新用户注册后不出几个月，这些邮件地址就失效了，而他们也就永远失去了和这些用户联络的渠道。所以，我建议所有内容提供者都认真地考虑利用RSS“推” &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 技术来与用户建立持久稳定的关系，这在长期来讲是绝对有利的。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最后，RSS优于电子邮件还在于目前的一些RSS内容聚合商(如看天下&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.kantianxia.com/&quot;  &gt;www.kantianxia.com&lt;/A&gt;)帮助支持RSS“推”技术的内容提供者向用户作宣传。如看天下的“RSS内容源索引”就是一个使用户发现并接受新内容源的增值平台 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 这与搜索引擎把内容聚合起来向用户作推广是一个概念。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目前，越来越多的用户已经开始认识并接受RSS技术。我衷心希望所有的内容提供者都能顺应这个潮流，在这个新的平台上取得更好的成绩。7.&amp;nbsp;&amp;nbsp; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 认识RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以下内容是为了让大家更加了解RSS，如果你对其不感兴趣，完全可以不看，它不会对你使用RSS阅读产生多大的影响。7.1. Feed(提要)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 博客以RSS文档形式为其内容提供一个提要，该RSS文档可以通过众所周知的URL获得。RSS文档是一个XML文件，它包含大量离散的新闻项，如某个博客中的入口项。由于RSS是XML格式文件，所以它很容易被其它程序所使用。RSS聚合器是一个读取RSS文档并显示新闻项的程序。大多数聚合器只要输入RSS的URL，使得预定提要成为可能。RSS使阅读博客便得容易。大多数经常阅读博客的开发人员都使用某种类型的聚合器来帮助他们有效地筛选提要内容。聚合器使得阅读博客的感觉就象是在阅读电子邮件，因为它们突出新闻项并将新闻项进行缓冲处理以便离线阅读。还有一些在线RSS聚合器将RSS提要捆绑到某个单独的网站。其优点是易于设置并且可以从任何计算机存取你的提要内容。当然，其缺点也是显而易见的，那就是在阅读时必须始终保持连接。RSS是博客成为一种强大的新型信息交流形式之根本所在。在网志出现之前，大多数开发人员为了要查找到需要的内容，通常要花大量时间来筛选掉那些令人讨厌的无关的信息。博客通过让读者选择所要阅读的提要，将控制权交给读者，从而有效地构建自己的个性化内容流。7.2. &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS版本&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS的版本有很多个，0.90、0.91、0.92、0.93、0.94、1.0 和 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.0。要理解它们需要了解一些有关它们的历史背景。最初Netscape创建了RSS的最初版本0.90，起初的名字是“RDF Site &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary”或者“Rich Site &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary”(规范中说前者是正式名称)。Netscape创建RSS0.90用于其Web门户，这个时候，其他人看到了RSS的使用潜力。Userland &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Software是第一个开始将 RSS 用于其网志商业产品者之一。版本 0.90 在很大程度上基于 W3C 的 Resource &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description Framework (RDF)。许多人都认为 RDF 过于复杂，因此都建议出一个免费的简化版本 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.91。这个任务恰好就给了 Userland Software。Userland Software 便继续发展 RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 的简化版本，随后出台的版本包括：0.92、0.93 和 0.94。为了强调其所做的简化工作，他们将 RSS 的全称定为“Really &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Simple Syndication”。正当Userland &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Software继续专注于其简化工作时，另外一组开发人员在复兴最初的RDF版本（0.90），因为RSS号称自己更灵活。他们最终发布了一个RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.0的版本，其正式名称还是“RDF Site Summary”。由于使用RDF，这个版本完全不同于 Userland &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Software所控制的版本。Userland Software当然不太愿意看到RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.0似乎要取代其0.94版本的事实，于是出了一个新版本，并将版本号一下子跳到了2.0。这就是今天的这种局面，形成了两个主要的竞争版本：一个基于RDF1.0，而另一个则是由Userland &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Software所开发的2.0，由于它们两个都共用相同的名字。就成为一种可怕的混乱，因为版本号导致人们误认为2.0是1.0的改进版本，而实际上它们是两个目标完全不同的规范。现在，另一组开发人员已经下狠心着手解决这种混乱问题，通过定义新的摘要(syndication)规范来与 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS名字的随意性决裂。这个解决方案称为 Atom（原子）项目。7.3. Atom(原子)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Atom是一个项目的名字，主要是开发一个新的博客摘要格式以解决目前RSS存在的问题(混乱的版本号，不是一个真正的开放标准，表示方法的不一致，定义贫乏等等)。Atom &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 希望提供一个清晰的版本以解决每个人的需要，其设计完全不依赖于供货商，任何人都可以对之进行自由扩展，完整详细说明。除了定义新的摘要格式之外，Atom还希望定义一个标准的档案文件格式和一个标准的博客编辑API(Atom &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; API)。其实RSS1.0和2.0格式所包含的核心信息是相同的，只是其结构不一样罢了，这里我们不再继续深入的讨论这个问题，有兴趣的朋友可以去博客中国里了解相关知识！&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.4. blogroll&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blogroll是博客页面提要的集合，大多数博客在其个人页面上都提供blogroll。这就允许读者连接到其他趣味和写作风格相投的人的网页上。Blogroll方便了网络上的沟通。通过使用Outline &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor Markup Language(OPML)，人们可以用XML &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 格式文件交换blogroll。大多数网志引擎都自己管理blogroll，每当读者请求blogroll时都自己产生相应的XML格式。同样，大多数聚合器(RSS阅读器)都能导入blogroll并自动预定所包含的摘要。8. &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 2.0&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.1. RSS2.0新特性&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 2.0 建立在 RSS 0.91 规范的基础上。它是向后兼容的，因此任何处理 RSS 2.0 的工具应该也能够处理 0.91 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 提要。升级后的规范增加了少量元素,比如 &amp;lt;cloud&amp;gt; 和 &amp;lt;guid&amp;gt;。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 它也去掉了一些限制。在过去，&amp;lt;link&amp;gt; 和 &amp;lt;url&amp;gt; 元素只能是 http 或 ftp，现在可以使用任何有效的 URI。在 RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.91 中，每个频道只能包含 15 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 个项，而且元素的长度也有限制，现在这些限制都取消了。不过仍然应该小心使用较大的值，因为它们可能对老的应用程序造成问题。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 不过更大的变化是能够使用名称空间扩展这种格式。RSS 2.0 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 支持名称空间，一种增加规范中没有的元素的标准方法。只要定义在一个名称空间中，提要可以包含新的元素。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.2. RSS 2.0 概述&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 是一种 XML 方言，用于连锁 Web 内容和元数据。RSS 0.91 是几种可用版本中最常用的一种。对于新的 RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 提要，更好的办法是使用 2.0 版，因为这是现行的规范，而且如前所述，它与 0.91 向后兼容。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dave Winer 编写了规范的 2.0 版。规范的修改可能变得难以使用，或者损害已有的应用程序，他有意识地避免了这种情况。Winer &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 总结了他的思想：“保持简单。这就是 RSS 的价值所在。任何稍微了解 HTML 的人都能够理解 RSS。这一点极其重要！”&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 该规范在 Creative Commons &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 许可下发布（请参阅参考资料）。这意味着您可以免费复制和分发该规范，并进行衍生工作，而且可以自由地用于商业工作。一个咨询委员会负责更新规范、推广规范和编写文档。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.3. 发现 RSS 提要&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 可以使用搜索引擎查找 RSS 格式的内容。比方说使用 Google 时，您可以在查找中增加“filetype:rss”以搜索 .rss &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件中的查找项。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 专门的搜索引擎使内容搜索更加容易。Feedster 监视 weblog &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 并允许您通过一个日志项索引查找，按照相关性、日期、等级（logrank）查看。当您在搜索时，Feedster 按照您的要求创建一个 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 提要。这个提要可以增加到您的新闻阅读器中，以便您能够看到所有与搜索请求有关的最新活动，您甚至不需要离开新闻阅读器。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DayPop 搜索新闻、blog 和 RSS 提要。它让您在 weblog 世界跟踪流行的新闻。它提供了目前最流行的 40 个 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weblog 链接。这是全世界最流行文章的链接。它创建了一个 weblog 中所用最热门词汇的列表。它还根据引用对 weblog &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 评级，提供最受其他 weblogger 欢迎的 weblog 列表。您也可以自定义搜索。评级列表和自定义搜索都有 RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 提要形式，可以导入您的新闻阅读器。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.4. RSS 文件形式&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 文件由一个 &amp;lt;channel&amp;gt; 元素及其子元素组成。除了频道内容本身之外，&amp;lt;channel&amp;gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 还以项的形式包含表示频道元数据的元素 —— 比如 &amp;lt;title&amp;gt;、&amp;lt;link&amp;gt; 和 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;。项通常是频道的主要部分，包含经常变化的内容。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.4.1.&amp;nbsp;&amp;nbsp;&amp;nbsp; 频道&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 频道一般有三个元素，提供关于频道本身的信息：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;：频道或提要的名称。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;：与该频道关联的 Web 站点或者站点区域的 URL。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;：简要介绍该频道是做什么的。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 许多频道子元素都是可选的。常用的 &amp;lt;image&amp;gt; 元素包含三个必需的子元素：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;：表示该频道的 GIF、JPEG 或 PNG 图像的 URL。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;：图象的描述。当频道以 HTML 呈现时，用作 HTML &amp;lt;image&amp;gt; 标签的 ALT 属性。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;：站点的 URL。如果频道以 HTML 呈现，该图像作为到这个站点的链接。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;image&amp;gt; 还有三个可选的子元素：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;width&amp;gt;：数字，表示图象的像素宽度，最大值是 188，默认值为 88。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;height&amp;gt;：数字，表示图象的像素高度。最大值是 400，默认值为 31。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;：包含文本，在呈现时可以作为围绕着该图像形成的链接元素的 title 属性。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 此外还可以使用许多其他可选的频道元素。多数都是不言自明的：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;language&amp;gt;：en-us &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;copyright&amp;gt;：Copyright 2003, James Lewin &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;managingEditor&amp;gt;：&lt;A rel=&quot;nofollow&quot; href=&quot;mailto:dan@spam_me.com&quot;  &gt;dan@spam_me.com&lt;/A&gt; (Dan Deletekey) &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;webMaster&amp;gt;：&lt;A rel=&quot;nofollow&quot; href=&quot;mailto:dan@spam_me.com&quot;  &gt;dan@spam_me.com&lt;/A&gt; (Dan Deletekey) &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;：Sat, 15 Nov 2003 0:00:01 GMT &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastBuildDate&amp;gt;：Sat, 15 Nov 2003 0:00:01 GMT &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;category&amp;gt;：ebusiness &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;generator&amp;gt;：Your CMS 2.0 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;docs&amp;gt;：&lt;A rel=&quot;nofollow&quot; href=&quot;http://blogs.law.harvard.edu/tech/rss&quot;  &gt;http://blogs.law.harvard.edu/tech/rss&lt;/A&gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cloud&amp;gt;：允许进程注册为“cloud”，频道更新时通知它，为 RSS 提要实现了一种轻量级的发布-订阅协议。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ttl&amp;gt;：存活时间 是一个数字，表示提要在刷新之前缓冲的分钟数。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rating&amp;gt;：关于该频道的 PICS 评价。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textInput&amp;gt;：定义可与频道一起显示的输入框。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;skipHours&amp;gt;：告诉聚集器哪些小时的更新可以忽略。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;skipDays&amp;gt;：告诉聚集器那一天的更新可以忽略。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.4.2.&amp;nbsp;&amp;nbsp;&amp;nbsp; 项&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 项通常是提要中最重要的部分。每个项都可以关于某个 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weblog、完整文档、电影评论、分类广告或者任何希望与频道连锁的内容的记录。频道中的其他元素可能不变，但项经常发生变化。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 您可以有任意多个项。以前的规范限值为 15 个项，如果要保持向后兼容这仍然是一个很好的上限。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.4.3.&amp;nbsp;&amp;nbsp;&amp;nbsp; 新闻项的元素&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 每个项通常包含三个元素：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;：这是项的名称，在标准应用中被转换成 HTML 中的标题。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;：这是该项的 URL。title 通常作为一个链接，指向包含在 &amp;lt;link&amp;gt; 元素中的 URL。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;：通常作为 link 中所指向的 URL 的摘要或者补充。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 所有的元素都是可选的，但是一个项至少要么 包含一个 &amp;lt;title&amp;gt;，要么包含一个 &amp;lt;description&amp;gt;。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 项还有其他一些可选的元素：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;author&amp;gt;：作者的 e-mail 地址。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;category&amp;gt;：支持有组织的记录。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;comments&amp;gt;：关于项的注释页的 URL。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enclosure&amp;gt;：支持和该项有关的媒体对象。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;guid&amp;gt;：唯一与该项联系在一起的永久性链接。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;：该项是什么时候发布的。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;source&amp;gt;：该项来自哪个 RSS 频道，当把项聚合在一起时非常有用。 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 清单 1 是一个 RSS 2.0 文件的例子。注意，频道包含在 &amp;lt;rss version=&quot;2.0&quot;&amp;gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中。这是一个非常基本的例子，说明了项和图像如何包含在频道中。所示的元素都是最常用的频道子元素。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 清单 1. 示例 RSS 2.0 文件&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rss version=&quot;2.0&quot;&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;channel&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;The channel's name goes here&amp;lt;/title&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.urlofthechannel.com/&amp;lt;/link&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;This channel is an example channel for an article.&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;language&amp;gt;en-us&amp;lt;/language&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;image&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;The image title goes here&amp;lt;/title&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;http://www.urlofthechannel.com/images/logo.gif&amp;lt;/url&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.urlofthechannel.com/&amp;lt;/link&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/image&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;The Future of content&amp;lt;/title&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.itworld.com/nl/ecom_in_act/11122003/&amp;lt;/link&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt; The issue of people distributing and reusing&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digital media is a problem for many businesses. It may also be&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a hidden opportunity. Just as open source licensing has opened&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; up new possibilities in the world of technology, it promises to &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the same in the area of creative content.&amp;lt;/description&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;On&lt;WBR&gt;line Music Services - Better than free?&amp;lt;/title&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.itworld.com/nl/ecom_in_act/08202003/&amp;lt;/link&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;More people than ever are downloading music from &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the Internet. Many use person-to-person file sharing programs &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; like &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kazaa to share and download music in MP3 format, paying &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nothing. &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This has made it difficult for companies to setup on&lt;WBR&gt;line music &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; businesses. How can companies compete against &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; free?&amp;lt;/description&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/channel&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/rss&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.5. 相关工具&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于 RSS 的普及，出现了许多工具，使您能够基本上在任何环境中使用这些文件：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Java 技术：可在 Sun 站点上找到的一个 RSS Utilities Package，支持在 JavaServer Pages &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中使用 Tag Library。它还包括一个 RSS 解析器。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Perl：已经有几种 Perl 工具处理 RSS。XML::RSS 提供了创建和维护 RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;文件的一个框架。它支持在常用版本之间的转换。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Python：RSS.py 是一组通过 Python 使用 RSS 频道的类。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 此外，许多内容管理和 weblog 工具也直接支持 RSS。多数 weblog 工具，包括 Movable Type、Blogger 和 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Radio Userland 都支持 RSS。一些内容管理系统，包括 Zope 和 CityDesk 现在也支持它了。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.6. 扩展 RSS&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 2.0 有许多可选元素，包括多数频道都需要的那些元素。但是它还支持扩展性，因此您可以使用规范中没有的元素。不过，RSS 2.0 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 规范并没有花费多少时间定义如何实现扩展。关于扩展性，规范中总结为：“RSS &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 提要可以包含本页中没有描述的元素，只要这些元素定义在一个名称空间中。”&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这就留下了很大的想像空间！所幸的是，规范中包含一个例子，您可以参考目前使用的几个例子。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 基本的思想是您可以增加需要的标签 —— &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 但是，增加带有多种含义的元素太容易了。使用您的频道的人们可能并不知道某个标签是什么含义。比如，如果我要在一个频道中使用 &amp;lt;analog&amp;gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 标签，它的含义就不很清楚。Web 专家可能认为这个标签指的是 Analog，它是最流行的 Web log &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件分析器。科幻迷可能认为这个标签是关于 Analog &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 的，一本经典的科幻杂志。音乐家可能认为它指的是流行的合成器类型，生物学家认为这是一种器官，电子工程师认为是一种电路。含糊性使人们很难理解标签的含义。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因此，RSS 允许您增加所喜欢的任何标签，但是要求必须和名称空间一起使用。这样有助于澄清标签的含义。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再回到 &amp;lt;analog&amp;gt; 的例子，我可能希望创建一组关于电子商务的标签，并让 &amp;lt;analog&amp;gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 标签作为一个“e-business”元素。为此，我增加如下的名称空间：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:ebusiness=&quot;&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.lewingroup.com/ebusinessChannel&quot;  &gt;http://www.lewingroup.com/ebusinessChannel&lt;/A&gt;&quot;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这就创建了一个名为“ebusiness”的名称空间，并表明这个名称空间的文档在我的站点上。为了使用 &amp;lt;analog&amp;gt; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 标签，我可以使用这种格式：&amp;lt;ebusiness:analog&amp;gt;。这样就能与其他类似的含义中区分开来，比如 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sciencefiction:analog&amp;gt; 或 &amp;lt;synthesizers:analog&amp;gt;。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关于扩展性，一个更实际的例子可以在 RSS 2.0 规范的示例文件中找到：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 清单 2. RSS 2.0 规范示例文件中的名称空间&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- RSS generated by Radio UserLand v8.0.5 on 9/30/2002; 4:00:00 AM &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pacific --&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rss version=&quot;2.0&quot; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:blogChannel=&quot;&lt;A rel=&quot;nofollow&quot; href=&quot;http://backend.userland.com/blogChannelModule&quot;  &gt;http://backend.userland.com/blogChannelModule&lt;/A&gt;&quot;&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;channel&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Scripting News&amp;lt;/title&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.scripting.com/&amp;lt;/link&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;A weblog about scripting and stuff like &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; that.&amp;lt;/description&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;language&amp;gt;en-us&amp;lt;/language&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;blogChannel:blogRoll&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A rel=&quot;nofollow&quot; href=&quot;http://radio.weblogs.com/0001015/userland/scriptingNewsLeftLinks.opml&quot;  &gt;http://radio.weblogs.com/0001015/userland/scriptingNewsLeftLinks.opml&lt;/A&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/blogChannel:blogRoll&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Joshua Allen: &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a href=&quot;&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.netcrucible.com/blog/2002/09/29.html#a243&quot;  &gt;http://www.netcrucible.com/blog/2002/09/29.html#a243&lt;/A&gt;&quot;&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Who loves namespaces?&amp;lt;/a&amp;gt;&amp;lt;/description&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;Sun, 29 Sep 2002 19:59:01 GMT&amp;lt;/pubDate&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;guid&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A rel=&quot;nofollow&quot; href=&quot;http://scriptingnews.userland.com/backissues/2002/09/29#When:12:59:01PM&quot;  &gt;http://scriptingnews.userland.com/backissues/2002/09/29#When:12:59:01PM&lt;/A&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/guid&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/item&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/channel&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/rss&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在这个例子中，定义了一个称为 blogChannel 的名称空间。它指向一个文档，该文档解释了几种常见于 weblog &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 的新元素的用法。其中之一是 &amp;lt;blogroll&amp;gt;。文档说明，blogroll 是 weblog 中的一个链接集合，指向与您的 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weblog 内容相关的站点。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;blogChannel:blogRoll&amp;gt; 标签提供了用户或软件所需要的信息，知道 blogRoll 是一个定义在 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blogChannel 名称空间中的元素，而且可以找到这个文档的位置。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 同样，RSS 2.0 只对不 属于规范的元素要求名称空间。所有的基本标签都假定在 RSS 2.0 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 名称空间中。这使得这种格式更容易使用，因为除非需要扩展 RSS，否则您完全不需要知道名称空间。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.7. RSS2.0标记手册&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 注：英文原版请参见&lt;A rel=&quot;nofollow&quot; href=&quot;http://blogs.law.harvard.edu/tech/rssRSS&quot;  &gt;http://blogs.law.harvard.edu/tech/rssRSS&lt;/A&gt;是 Really Simple &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Syndication的缩写（对rss2.0而言，是这三个词的缩写，对rss1.0而言则是RDF Site &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Summary的缩写，1.0与2.0走的是两个体系）&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS 基于XML，所有的 RSS 必须遵循w3c网站上公布的XML 1.0 规范。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在一个RSS文档中，根元素是&amp;lt;rss&amp;gt;，带有一个必备属性version，用以指明该文档遵循的rss规范，如果rss文档遵循本规范，则version值必须是2.0。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rss&amp;gt;元素只有一个子元素，包含关于频道的一些信息。频道(channel)是整个blog，项(item)指一篇文章或日志(也有称这为post)。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 元素(Element)描述(Description)值域重要性举例(Example)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; title频道名称必备GoUpstate.com News Headlines&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; link频道的URL必备&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.goupstate.com/&quot;  &gt;http://www.goupstate.com/&lt;/A&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description频道的描述必备The latest news from GoUpstate.com, a &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Spartanburg Herald-Journal Web site.&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; language频道文章所用语言，可用netscape或w3c推荐的列表可选en-us&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copyright频道内容的版权说明可选Copyright 2002, Spartanburg Herald-Journal&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; managingEditor责任编辑的email可选&lt;A rel=&quot;nofollow&quot; href=&quot;mailto:geo@herald.com&quot;  &gt;geo@herald.com&lt;/A&gt; (George Matesky)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webMaster负责频道技术事务的网站管理员email可选&lt;A rel=&quot;nofollow&quot; href=&quot;mailto:betty@herald.com&quot;  &gt;betty@herald.com&lt;/A&gt; (Betty &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;Guernsey)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pubDate频道内容发布日期，格式遵循RFC822格式（年份可为2们或4位）可选Sat, 07 Sep 2002 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:00:01 GMT&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lastBuildDate频道内容最后的修改日期可选Sat, 07 Sep 2002 09:42:31 GMT&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; category指定频道所属的一个或几个类别可选&amp;lt;category&amp;gt;Newspapers&amp;lt;/category&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generator生成该频道的程序名可选MightyInHouse Content System v2.3&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; docs指向该RSS文件所用格式说明的URL可选&lt;A rel=&quot;nofollow&quot; href=&quot;http://blogs.law.harvard.edu/tech/rss&quot;  &gt;http://blogs.law.harvard.edu/tech/rss&lt;/A&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cloudAllows processes to register with a cloud to be notified &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of updates to the channel, implementing a lightweight &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; publish-subscribe protocol for RSS feeds. More info &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; here.可选&amp;lt;cloud domain=&quot;rpc.sys.com&quot; port=&quot;80&quot; path=&quot;/RPC2&quot; &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; registerProcedure=&quot;pingMe&quot; protocol=&quot;soap&quot;/&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ttl有效期，用以指明该频道可被缓存的最长时间分钟为单位可选&amp;lt;ttl&amp;gt;60&amp;lt;/ttl&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; image指定一个 GIF或JPEG或PNG图片，用以与频道一起显示可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rating这个频道的分级（主要指成人、限制、儿童等）可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textInput指定一个text输入框供用户输入，具体信息及功能未定。可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; skipHours提示新闻聚合器，那些小时时段它可以跳过。可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; skipDays提示新闻聚合器，那些天它可以跳过。可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.7.2.&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS2.0元素channel的子元素image的子元素列表&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 元素(Element)描述(Description)值域重要性举例(Example)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url图片的url必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; title图片的标题，用于http的alt属性必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; link网站的url(实际中常以频道的url代替)必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; width图片的宽度(象素为单位)最大144,默认88可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; height图片的高度(象素为单位)最大400，默认31可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; description用于link的title属性可选&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.7.3.&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS2.0元素channel的子元素cloud的子元素列表&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 元素(Element)描述(Description)值域重要性举例(Example)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; domainCloud程序所在机器的域名或IP地址radio.xmlstoragesystem.com&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; port访问clound程序所通过的端口80&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path程序所在路径（不一定是真实路径）/RPC2&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; registerProcedure注册的可提供的服务或过程xmlStorageSystem.rssPleaseNotify&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocol协议xml-rpc, soap , http-post 之一xml-rpc&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.7.4.&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS2.0元素channel的子元素textInput的子元素列表&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 元素(Element)描述(Description)值域重要性举例(Example)&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; titleSubmit按钮的标签必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; description解释text输入区必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameText area对象的名字必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; link处理提交的请求的cgi程序必备&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.7.5.&amp;nbsp;&amp;nbsp;&amp;nbsp; 开发RSS2.0接口注意：时间字段必须是rfc 822格式&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最早开发WebLucene时：RSS 2.0数据输出的时间字段是ISO格式：2004-12-25 21:48:09 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因此有的RSS解析会出错。正确的应该是这种格式：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;Sun, 26 Dec 2004 21:48:09 +0800&amp;lt;/pubDate&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 查了一下，原来这种时间格式是：rfc822标准，例如 Thu, 21 Dec 2000 16:01:07 +0200&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.&amp;nbsp;&amp;nbsp; RSS开发教程&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS（Really Simple Syndication，真正简单的连锁）是一种 Web 内容连锁格式。RSS 成为通过 Web &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 连锁新闻内容的标准格式。作为最近与 Sun Microsystems 签署合同的一部分，我负责开发任何懂得 RSS、JavaServer &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pages 和 HTML 的人便可以使用的“JSP 标签库”。taglib 主要面向用 RSS 收集新闻内容的 Web &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 站点的非技术性编辑人员。我的目标是开发在 Web 页中将简化使用 RSS 内容（0.91、0.92 和 2.0 版本）的 JSP &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;标签库。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RSS Utilities Package 是该项目的结果。它包括一套自定义 JSP 标签，这些标签弥补了 RSS Utilities &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tag library 和灵活的 RSS 语法分析器。该文档说明了如何使用该语法分析器和 RSS Utilities Package &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 提供的库。在这里单击便可以下载第一个版本。该 zip 文件包含一个 jar 文件 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rssutils.jar（该文件包含使用该工具所需的类）和一个 tld 文件（该文件定义从 RSS 文档中提取信息的 JSP &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 自定义标签）。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 安装 taglib&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 尽管使用标签库很容易，但在安装时要求您了解 Web 服务器的工作原理和如何去配置它。第一步是下载并解压包。一旦 zip &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件已经解压了，在 Web 应用程序的 /WEB-INF/lib 目录中放置一份 rssutils.jar 和 &lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rsstaglib.tld 的副本。将下面的 taglib 定义添加至 Web 应用程序的 /WEB-INF/web.xml 文件：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;taglib&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;taglib-uri&amp;gt;/WEB-INF/rssutils.tld&amp;lt;/taglib-uri&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;taglib-location&amp;gt;/WEB-INF/rssutils.tld&amp;lt;/taglib-location&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/taglib&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;/P&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183627/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/38851066201021324339215&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 07:53:59 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/38851066201021324339215</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/38851066201021324339215</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/38851066201021324339215</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183627/6216619</fs:itemid></item><item><title>什么是RSS 什么是FEED</title><link>http://492127285jin.blog.163.com/blog/static/38851066201021413037924</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T07:50:45+08:00</dcterms:modified><description>&lt;div&gt;&amp;nbsp;请看视频 &lt;A rel=&quot;nofollow&quot; href=&quot;http://v.youku.com/v_show/id_XMTAzNzY0MTQ0.html&quot;  &gt;http://v.youku.com/v_show/id_XMTAzNzY0MTQ0.html&lt;/A&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183626/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/38851066201021413037924&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 07:50:45 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/38851066201021413037924</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/38851066201021413037924</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/38851066201021413037924</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183626/6216619</fs:itemid></item><item><title>ASP.NET Web.config基本配置</title><link>http://492127285jin.blog.163.com/blog/static/388510662010414113255371</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T04:23:07+08:00</dcterms:modified><description>&lt;div&gt;&lt;p&gt;在Web.config配置文件中包括很多的配置节，这些配置节都用来规定ASP.NET应用程序的相应属性。&lt;/p&gt; &lt;p&gt;1．&amp;lt;configuration&amp;gt;：根配置节&lt;/p&gt; &lt;p&gt;所有Web.config的根配置节都存储与&amp;lt;configuration&amp;gt;标记中，在它内部封装了其他的配置节，示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;lt;configuration&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;syste.web&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ……&lt;/p&gt; &lt;p&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt; &lt;p&gt;2．&amp;lt;configSections&amp;gt;：处理声明配置节&lt;/p&gt; &lt;p&gt;该配置节主要用于自定义的配置节处理程序声明，该配置节由多个“&amp;lt;section&amp;gt;”配置节组成，示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;configSections&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sectionGroup &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name=&quot;system.web.extensions&quot; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=&quot;System.Web.Configuration.SystemWebExtensionsSectionGroup, &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sectionGroup name=&quot;scripting&quot; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=&quot;System.Web.Configuration.ScriptingSectionGroup, &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&quot;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;section name=&quot;scriptResourceHandler&quot; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type=&quot;System.Web.Configuration.ScriptingScriptResourceHandlerSection, &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PublicKeyToken=31BF3856AD364E35&quot; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requirePermission=&quot;false&quot; allowDefinition=&quot;MachineToApplication&quot;/&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sectionGroup&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sectionGroup&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/configSections&amp;gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;其中&amp;lt;section&amp;gt;配置节包括name和type两种属性，name属性指定配置数据配置节的名称，而type属性指定与name属性相关的配置处理程序类。&lt;/p&gt; &lt;p&gt;3．&amp;lt;appSettings&amp;gt;：用户自定义配置节&lt;/p&gt; &lt;p&gt;“&amp;lt;appSettings&amp;gt;”配置节为开发人员提供ASP.NET应用程序的扩展配置，通过使用“&amp;lt;appSettings&amp;gt;”配置节能够自定义配置文件，示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;appSettings&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key=&quot;Name&quot; value=&quot;Guojing&quot;/&amp;gt; //增加自定义配置节&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key=&quot;E-mail&quot; value=&quot;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/appSettings&amp;gt;&lt;/p&gt; &lt;p&gt;上述代码添加了两个自定义配置节，这两个自定义配置节分别为Name和E-mail，用于定义该Web应用程序的开发者的信息，以便在其他页面中使用该配置节。&lt;/p&gt; &lt;p&gt;若需要在页面中使用该配置节，可以使用ConfigurationSettings.appSettings(“key的名称”)方法来获取自定义配置节中的配置值，示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextBox1.Text = ConfigurationSettings.AppSettings[&quot;name&quot;].ToString(); //获取自定义配置节&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p&gt;“&amp;lt;appSettings&amp;gt;”配置节包括两个属性，分别为Key和Value。Key属性指定自定义属性的关键字，以方便在应用程序中使用该配置节，而Value属性则定义该自定义属性的值。&lt;/p&gt; &lt;p&gt;4．&amp;lt;customErrors&amp;gt;：用户错误配置节&lt;/p&gt; &lt;p&gt;该配置节能够指定当出现错误时，系统自动跳转到一个错误发生的页面，同时也能够为应用程序配置是否支持自定义错误。“&amp;lt;customErrors&amp;gt;”配置节包括两种属性，这两种属性分别为mode和defaultRedirect。其中mode包括3种状态，这三种状态分别为On、Off和RemoteOnly。On表示启动自定义错误；Off表示不启动自定义错误；RemoteOnly表示给远程用户显示自定义错误。另外：defaultRedirect属性则配置了当应用程序发生错误时跳转的页面。&lt;/p&gt; &lt;p&gt;“&amp;lt;customErrors&amp;gt;”配置节还包括子配置节“&amp;lt;error&amp;gt;”，该标记用于特定状态的自定义错误页面，子标记“&amp;lt;error&amp;gt;”包括两个属性，分别为statusCode和redirect，其中statusCode用于捕捉发生错误的状态码，而redirect指定发生该错误后跳转的页面，该配置节配置代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;GenericErrorPage.htm&quot;&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;error statusCode=&quot;403&quot; redirect=&quot;NoAccess.htm&quot; /&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;error statusCode=&quot;404&quot; redirect=&quot;FileNotFound.htm&quot; /&amp;gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/customErrors&amp;gt;&lt;/p&gt; &lt;p&gt;上述代码则在Web.config文件中配置了相应的customErrors信息。当出现404错误时，系统会自行跳转到FileNotFound.htm页面以提示404错误，开发人员能够编写FileNotFound.htm页面进行用户提示。&lt;/p&gt; &lt;p&gt;5．&amp;lt;globalization&amp;gt;：全局编码配置节&lt;/p&gt; &lt;p&gt;“&amp;lt;globalization&amp;gt;”用于配置应用程序的编码类型，ASP.NET应用程序将使用该编码类型分析ASPX等页面，常用的编码类型包括：&lt;/p&gt; &lt;p&gt;q UFT-8：Unicode UTF-8字节编码技术，ASP.NET应用程序默认编码。&lt;/p&gt; &lt;p&gt;q UTF-16：Unicode UTF-16字节编码技术。&lt;/p&gt; &lt;p&gt;q ASCII：标准的ASCII编码规范。&lt;/p&gt; &lt;p&gt;q Gb2312：中文字符Gb2312编码规范。&lt;/p&gt; &lt;p&gt;在配置“&amp;lt;globalization&amp;gt;”配置节时，其编码类型可以参考上述编码类型，如果不指定编码类型，则ASP.NET应用程序默认编码为UTF-8，示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;globalization fileEncoding=&quot;UTF-8&quot; requestEncoding=&quot;UTF-8&quot; responseEncoding=&quot;UTF-8&quot;/&amp;gt;&lt;/p&gt; &lt;p&gt;6．&amp;lt;sessionState&amp;gt;：Session状态配置节&lt;/p&gt; &lt;p&gt;&amp;lt;sessionState&amp;gt;配置节用于完成ASP.NET应用程序中会话状态的设置，&amp;lt;sessionState&amp;gt;配置节包括以下5种属性：&lt;/p&gt; &lt;p&gt;q mode：指定会话状态的存储位置，一共有Off、Inproc、StateServer和SqlServer集中设置，Off表示禁用该设置，Inproc表示在本地保存会话状态，StateServer表示在服务器上保存会话状态，SqlServer表示在SQL Server保存会话设置。&lt;/p&gt; &lt;p&gt;q stateConnectionString：用来指定远程存储会话状态的服务器名和端口号。&lt;/p&gt; &lt;p&gt;q sqlConnectionString：用来连接SQL Server的连接字符串，当在mode属性中设置SqlServer时，则需要使用到该属性。&lt;/p&gt; &lt;p&gt;q Cookieless：指定是否使用客户端cookie保存会话状态。&lt;/p&gt; &lt;p&gt;q Timeout：指定在用户无操作时超时的时间，默认情况为20分钟。&lt;/p&gt; &lt;p&gt;&amp;lt;sessionState&amp;gt;配置节配置示例代码如下所示。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sessionState mode=&quot;InProc&quot; timeout=&quot;25&quot; cookieless=&quot;false&quot;&amp;gt;&amp;lt;/sessionState&amp;gt;&lt;/p&gt; &lt;p&gt;ASP.NET不仅包括这些基本的配置节，还包括其他高级的配置节，高级的配置节通常用于指定界面布局样式，如母版页、默认皮肤、以及伪静态等高级功能。&lt;br&gt;本篇文章来源于 网络天空教程网 &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.wangluosky.cn/&quot;  &gt;www.wangluosky.cn&lt;/a&gt; 原文出处：&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.wangluosky.cn/show.asp?id=2369&quot;  &gt;http://www.wangluosky.cn/show.asp?id=2369&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183623/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/388510662010414113255371&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 04:23:07 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/388510662010414113255371</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/388510662010414113255371</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/388510662010414113255371</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183623/6216619</fs:itemid></item><item><title>简单的sql语句</title><link>http://492127285jin.blog.163.com/blog/static/38851066201043083918495</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T03:28:50+08:00</dcterms:modified><description>&lt;div&gt;&lt;H2&gt;  &lt;DIV&gt;[&lt;A rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/3146511.htm#&quot;  &gt;编辑本段&lt;/A&gt;]&lt;/DIV&gt;&lt;A name=&quot;1&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;基础&lt;/H2&gt;  &lt;H3&gt;&lt;A name=&quot;1_1&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;创建数据库&lt;/H3&gt;　　创建之前判断该数据库是否存在   &lt;DIV&gt;&lt;/DIV&gt;　　if exists (select * from sys.databases where name='databaseName')   &lt;DIV&gt;&lt;/DIV&gt;　　drop database 'databaseName'   &lt;DIV&gt;&lt;/DIV&gt;　　go   &lt;DIV&gt;&lt;/DIV&gt;　　Create DATABASE database-name   &lt;H3&gt;&lt;A name=&quot;1_2&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;删除数据库&lt;/H3&gt;　　drop database dbname   &lt;H3&gt;&lt;A name=&quot;1_3&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;备份sql server&lt;/H3&gt;　　--- 创建 备份数据的 device   &lt;DIV&gt;&lt;/DIV&gt;　　USE master   &lt;DIV&gt;&lt;/DIV&gt;　　EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'   &lt;DIV&gt;&lt;/DIV&gt;　　--- 开始 备份   &lt;DIV&gt;&lt;/DIV&gt;　　BACKUP DATABASE pubs TO testBack   &lt;H3&gt;&lt;A name=&quot;1_4&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;创建新表&lt;/H3&gt;　　create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)   &lt;DIV&gt;&lt;/DIV&gt;　　根据已有的表创建新表：   &lt;DIV&gt;&lt;/DIV&gt;　　A：create table tab_new like tab_old (使用旧表创建新表)   &lt;DIV&gt;&lt;/DIV&gt;　　B：create table tab_new as select col1,col2… from tab_old definition only   &lt;H3&gt;&lt;A name=&quot;1_5&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;删除新表&lt;/H3&gt;　　drop table tabname   &lt;H3&gt;&lt;A name=&quot;1_6&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;增加一个列&lt;/H3&gt;　　Alter table tabname add column col type   &lt;DIV&gt;&lt;/DIV&gt;　　注：列增加后将不能删除。DB2中列加上后数据类型也不能改变，唯一能改变的是增加varchar类型的长度。   &lt;H3&gt;&lt;A name=&quot;1_7&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;添加主键&lt;/H3&gt;　　Alter table tabname add primary key(col)   &lt;DIV&gt;&lt;/DIV&gt;　　说明：删除主键： Alter table tabname drop primary key(col)   &lt;H3&gt;&lt;A name=&quot;1_8&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;创建索引&lt;/H3&gt;　　create [unique] index idxname on tabname(col….)   &lt;DIV&gt;&lt;/DIV&gt;　　删除索引：drop index idxname on tabname   &lt;DIV&gt;&lt;/DIV&gt;　　注：索引是不可更改的，想更改必须删除重新建。   &lt;H3&gt;&lt;A name=&quot;1_9&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;创建视图&lt;/H3&gt;　　create view viewname as select statement   &lt;DIV&gt;&lt;/DIV&gt;　　删除视图：drop view viewname   &lt;H3&gt;&lt;A name=&quot;1_10&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;几个简单的基本的sql语句&lt;/H3&gt;　　选择：select * from table1 where 范围   &lt;DIV&gt;&lt;/DIV&gt;　　插入：insert into table1(field1,field2) values(value1,value2)   &lt;DIV&gt;&lt;/DIV&gt;　　删除：delete from table1 where 范围   &lt;DIV&gt;&lt;/DIV&gt;　　更新：update table1 set field1=value1 where 范围   &lt;DIV&gt;&lt;/DIV&gt;　　查找：select * from table1 where field1 like ’%value1%’ （所有包含‘value1’这个模式的字符串）---like的语法很精妙，查资料!   &lt;DIV&gt;&lt;/DIV&gt;　　排序：select * from table1 order by field1,field2 [desc]   &lt;DIV&gt;&lt;/DIV&gt;　　总数：select count as totalcount from table1   &lt;DIV&gt;&lt;/DIV&gt;　　求和：select sum(field1) as sumvalue from table1   &lt;DIV&gt;&lt;/DIV&gt;　　平均：select avg(field1) as avgvalue from table1   &lt;DIV&gt;&lt;/DIV&gt;　　最大：select max(field1) as maxvalue from table1   &lt;DIV&gt;&lt;/DIV&gt;　　最小：select min(field1) as minvalue from table1[separator]   &lt;H3&gt;&lt;A name=&quot;1_11&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;几个高级查询运算词&lt;/H3&gt;　　A： UNION 运算符   &lt;DIV&gt;&lt;/DIV&gt;　　UNION 运算符通过组合其他两个结果表（例如 TABLE1 和 TABLE2）并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时（即 UNION ALL），不消除重复行。两种情况下，派生表的每一行不是来自 TABLE1 就是来自 TABLE2。   &lt;DIV&gt;&lt;/DIV&gt;　　B： EXCEPT 运算符   &lt;DIV&gt;&lt;/DIV&gt;　　EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL)，不消除重复行。   &lt;DIV&gt;&lt;/DIV&gt;　　C： INTERSECT 运算符   &lt;DIV&gt;&lt;/DIV&gt;　　INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL)，不消除重复行。   &lt;DIV&gt;&lt;/DIV&gt;　　注：使用运算词的几个查询结果行必须是一致的。   &lt;H3&gt;&lt;A name=&quot;1_12&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;使用外连接&lt;/H3&gt;　　A、left outer join：   &lt;DIV&gt;&lt;/DIV&gt;　　左外连接（左连接）：结果集既包括连接表的匹配行，也包括左连接表的所有行。   &lt;DIV&gt;&lt;/DIV&gt;　　SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   &lt;DIV&gt;&lt;/DIV&gt;　　B：right outer join:   &lt;DIV&gt;&lt;/DIV&gt;　　右外连接(右连接)：结果集既包括连接表的匹配连接行，也包括右连接表的所有行。   &lt;DIV&gt;&lt;/DIV&gt;　　C：full outer join：   &lt;DIV&gt;&lt;/DIV&gt;　　全外连接：不仅包括符号连接表的匹配行，还包括两个连接表中的所有记录。   &lt;DIV&gt;&lt;/DIV&gt;  &lt;H2&gt;  &lt;DIV&gt;[&lt;A rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/3146511.htm#&quot;  &gt;编辑本段&lt;/A&gt;]&lt;/DIV&gt;&lt;A name=&quot;2&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;提升&lt;/H2&gt;  &lt;H3&gt;&lt;A name=&quot;2_1&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;复制表&lt;/H3&gt;　　(只复制结构,源表名：a 新表名：b) (Access可用)   &lt;DIV&gt;&lt;/DIV&gt;　　法一：select * into b from a where 1&amp;lt;&amp;gt;1   &lt;DIV&gt;&lt;/DIV&gt;　　法二：select top 0 * into b from a   &lt;H3&gt;&lt;A name=&quot;2_2&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;拷贝表&lt;/H3&gt;　　(拷贝数据,源表名：a 目标表名：b) (Access可用)   &lt;DIV&gt;&lt;/DIV&gt;　　insert into b(a, b, c) select d,e,f from b;   &lt;H3&gt;&lt;A name=&quot;2_3&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;跨数据库之间表的拷贝&lt;/H3&gt;　　(具体数据使用绝对路径) (Access可用)   &lt;DIV&gt;&lt;/DIV&gt;　　insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件   &lt;DIV&gt;&lt;/DIV&gt;　　例子：..from b in '&quot;&amp;amp;Server.MapPath(&quot;.&quot;&amp;amp;&quot;\data.mdb&quot; &amp;amp;&quot;' where..   &lt;H3&gt;&lt;A name=&quot;2_4&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;子查询&lt;/H3&gt;　　(表名1：a 表名2：b)   &lt;DIV&gt;&lt;/DIV&gt;　　select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)   &lt;H3&gt;&lt;A name=&quot;2_5&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;显示文章、提交人和最后回复时间&lt;/H3&gt;　　select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b   &lt;H3&gt;&lt;A name=&quot;2_6&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;外连接查询&lt;/H3&gt;　　(表名1：a 表名2：b)   &lt;DIV&gt;&lt;/DIV&gt;　　select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   &lt;H3&gt;&lt;A name=&quot;2_7&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;在线视图查询&lt;/H3&gt;　　(表名1：a   &lt;DIV&gt;&lt;/DIV&gt;　　select * from (Select a,b,c FROM a) T where t.a &amp;gt; 1;   &lt;H3&gt;&lt;A name=&quot;2_8&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;between的用法&lt;/H3&gt;　　between限制查询数据范围时包括了边界值,not between不包括   &lt;DIV&gt;&lt;/DIV&gt;　　select * from table1 where time between time1 and time2   &lt;DIV&gt;&lt;/DIV&gt;　　select a,b,c, from table1 where a not between 数值1 and 数值2   &lt;H3&gt;&lt;A name=&quot;2_9&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;in 的使用方法&lt;/H3&gt;　　select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)   &lt;H3&gt;&lt;A name=&quot;2_10&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;删除主表中已经在副表中没有的信息&lt;/H3&gt;　　两张关联表delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1   &lt;H3&gt;&lt;A name=&quot;2_11&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;四表联查问题&lt;/H3&gt;　　select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....   &lt;H3&gt;&lt;A name=&quot;2_12&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;日程安排提前五分钟提醒&lt;/H3&gt;　　SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&amp;gt;5   &lt;H3&gt;&lt;A name=&quot;2_13&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;一条sql 语句搞定数据库分页&lt;/H3&gt;　　select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段   &lt;H3&gt;&lt;A name=&quot;2_14&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;前10条记录&lt;/H3&gt;　　select top 10 * form table1 where 范围   &lt;H3&gt;&lt;A name=&quot;2_15&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;选择排名&lt;/H3&gt;　　选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)   &lt;DIV&gt;&lt;/DIV&gt;　　select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)   &lt;H3&gt;&lt;A name=&quot;2_16&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;派生结果表&lt;/H3&gt;　　包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表   &lt;DIV&gt;&lt;/DIV&gt;　　(select a from tableA except (select a from tableB) except (select a from tableC)   &lt;H3&gt;&lt;A name=&quot;2_17&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;随机取出10条数据&lt;/H3&gt;　　select top 10 * from tablename order by newid()   &lt;H3&gt;&lt;A name=&quot;2_18&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;随机选择记录&lt;/H3&gt;　　select newid()   &lt;H3&gt;&lt;A name=&quot;2_19&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;删除重复记录&lt;/H3&gt;　　Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)   &lt;H3&gt;&lt;A name=&quot;2_20&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;列出数据库里所有的表名&lt;/H3&gt;　　select name from sysobjects where type='U'   &lt;H3&gt;&lt;A name=&quot;2_21&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;列出表里的所有的&lt;/H3&gt;　　select name from syscolumns where id=object_id('TableName')   &lt;H3&gt;&lt;A name=&quot;2_22&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;列示排列&lt;/H3&gt;　　列示type、vender、pcs字段，以type字段排列，case可以方便地实现多重选择，类似select 中的case。   &lt;DIV&gt;&lt;/DIV&gt;　　select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type   &lt;DIV&gt;&lt;/DIV&gt;　　显示结果：   &lt;DIV&gt;&lt;/DIV&gt;　　type vender pcs   &lt;DIV&gt;&lt;/DIV&gt;　　电脑 A 1   &lt;DIV&gt;&lt;/DIV&gt;　　电脑 A 1   &lt;DIV&gt;&lt;/DIV&gt;　　光盘 B 2   &lt;DIV&gt;&lt;/DIV&gt;　　光盘 A 2   &lt;DIV&gt;&lt;/DIV&gt;　　手机 B 3   &lt;DIV&gt;&lt;/DIV&gt;　　手机 C 3   &lt;H3&gt;&lt;A name=&quot;2_23&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;初始化表table1&lt;/H3&gt;　　TRUNCATE TABLE table1   &lt;H3&gt;&lt;A name=&quot;2_24&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;选择从10到15的记录&lt;/H3&gt;　　select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc   &lt;DIV&gt;&lt;/DIV&gt;  &lt;H2&gt;  &lt;DIV&gt;[&lt;A rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/3146511.htm#&quot;  &gt;编辑本段&lt;/A&gt;]&lt;/DIV&gt;&lt;A name=&quot;3&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;技巧&lt;/H2&gt;  &lt;H3&gt;&lt;A name=&quot;3_1&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;1=1，1=2的使用&lt;/H3&gt;　　在SQL语句组合时用的较多   &lt;DIV&gt;&lt;/DIV&gt;　　“where 1=1” 是表示选择全部 “where 1=2”全部不选，   &lt;DIV&gt;&lt;/DIV&gt;　　如：   &lt;DIV&gt;&lt;/DIV&gt;　　if @strWhere !='   &lt;DIV&gt;&lt;/DIV&gt;　　begin   &lt;DIV&gt;&lt;/DIV&gt;　　set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere   &lt;DIV&gt;&lt;/DIV&gt;　　end   &lt;DIV&gt;&lt;/DIV&gt;　　else   &lt;DIV&gt;&lt;/DIV&gt;　　begin   &lt;DIV&gt;&lt;/DIV&gt;　　set @strSQL = 'select count(*) as Total from [' + @tblName + ']'   &lt;DIV&gt;&lt;/DIV&gt;　　end   &lt;DIV&gt;&lt;/DIV&gt;　　我们可以直接写成   &lt;DIV&gt;&lt;/DIV&gt;　　set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere   &lt;H3&gt;&lt;A name=&quot;3_2&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;收缩数据库&lt;/H3&gt;　　--重建索引   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC REINDEX   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC INDEXDEFRAG   &lt;DIV&gt;&lt;/DIV&gt;　　--收缩数据和日志   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC SHRINKDB   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC SHRINKFILE   &lt;H3&gt;&lt;A name=&quot;3_3&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;压缩数据库&lt;/H3&gt;　　dbcc shrinkdatabase(dbname)   &lt;DIV&gt;&lt;/DIV&gt;　　转移数据库给新用户以已存在用户权限   &lt;DIV&gt;&lt;/DIV&gt;　　exec sp_change_users_login 'update_one','newname','oldname'   &lt;DIV&gt;&lt;/DIV&gt;　　go   &lt;H3&gt;&lt;A name=&quot;3_4&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;检查备份集&lt;/H3&gt;　　RESTORE VERIFYONLY from disk='E:\dvbbs.bak'   &lt;H3&gt;&lt;A name=&quot;3_5&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;修复数据库&lt;/H3&gt;　　Alter DATABASE [dvbbs] SET SINGLE_USER   &lt;DIV&gt;&lt;/DIV&gt;　　GO   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK   &lt;DIV&gt;&lt;/DIV&gt;　　GO   &lt;DIV&gt;&lt;/DIV&gt;　　Alter DATABASE [dvbbs] SET MULTI_USER   &lt;DIV&gt;&lt;/DIV&gt;　　GO   &lt;H3&gt;&lt;A name=&quot;3_6&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;日志清除&lt;/H3&gt;　　SET NOCOUNT ON   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @LogicalFileName sysname,   &lt;DIV&gt;&lt;/DIV&gt;　　@MaxMinutes INT,   &lt;DIV&gt;&lt;/DIV&gt;　　@NewSize INT   &lt;DIV&gt;&lt;/DIV&gt;　　USE tablename -- 要操作的数据库名   &lt;DIV&gt;&lt;/DIV&gt;　　Select @LogicalFileName = 'tablename_log', -- 日志文件名   &lt;DIV&gt;&lt;/DIV&gt;　　@MaxMinutes = 10, -- Limit on time allowed to wrap log.   &lt;DIV&gt;&lt;/DIV&gt;　　@NewSize = 1 -- 你想设定的日志文件的大小(M)   &lt;DIV&gt;&lt;/DIV&gt;　　-- Setup / initialize   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @OriginalSize int   &lt;DIV&gt;&lt;/DIV&gt;　　Select @OriginalSize = size   &lt;DIV&gt;&lt;/DIV&gt;　　FROM sysfiles   &lt;DIV&gt;&lt;/DIV&gt;　　Where name = @LogicalFileName   &lt;DIV&gt;&lt;/DIV&gt;　　Select 'Original Size of ' + db_name() + ' LOG is ' +   &lt;DIV&gt;&lt;/DIV&gt;　　CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +   &lt;DIV&gt;&lt;/DIV&gt;　　CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'   &lt;DIV&gt;&lt;/DIV&gt;　　FROM sysfiles   &lt;DIV&gt;&lt;/DIV&gt;　　Where name = @LogicalFileName   &lt;DIV&gt;&lt;/DIV&gt;　　Create TABLE DummyTrans   &lt;DIV&gt;&lt;/DIV&gt;　　(DummyColumn char (8000) not null)   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @Counter INT,   &lt;DIV&gt;&lt;/DIV&gt;　　@StartTime DATETIME,   &lt;DIV&gt;&lt;/DIV&gt;　　@TruncLog VARCHAR(255)   &lt;DIV&gt;&lt;/DIV&gt;　　Select @StartTime = GETDATE(),   &lt;DIV&gt;&lt;/DIV&gt;　　@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'   &lt;DIV&gt;&lt;/DIV&gt;　　DBCC SHRINKFILE (@LogicalFileName, @NewSize)   &lt;DIV&gt;&lt;/DIV&gt;　　EXEC (@TruncLog)   &lt;DIV&gt;&lt;/DIV&gt;　　-- Wrap the log if necessary.   &lt;DIV&gt;&lt;/DIV&gt;　　WHILE @MaxMinutes &amp;gt; DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired   &lt;DIV&gt;&lt;/DIV&gt;　　AND @OriginalSize = (Select size FROM sysfiles Where name = @LogicalFileName)   &lt;DIV&gt;&lt;/DIV&gt;　　AND (@OriginalSize * 8 /1024) &amp;gt; @NewSize   &lt;DIV&gt;&lt;/DIV&gt;　　BEGIN -- Outer loop.   &lt;DIV&gt;&lt;/DIV&gt;　　Select @Counter = 0   &lt;DIV&gt;&lt;/DIV&gt;　　WHILE ((@Counter &amp;lt; @OriginalSize / 16) AND (@Counter &amp;lt; 50000))   &lt;DIV&gt;&lt;/DIV&gt;　　BEGIN -- update   &lt;DIV&gt;&lt;/DIV&gt;　　Insert DummyTrans VALUES ('Fill Log')   &lt;DIV&gt;&lt;/DIV&gt;　　Delete DummyTrans   &lt;DIV&gt;&lt;/DIV&gt;　　Select @Counter = @Counter + 1   &lt;DIV&gt;&lt;/DIV&gt;　　END   &lt;DIV&gt;&lt;/DIV&gt;　　EXEC (@TruncLog)   &lt;DIV&gt;&lt;/DIV&gt;　　END   &lt;DIV&gt;&lt;/DIV&gt;　　Select 'Final Size of ' + db_name() + ' LOG is ' +   &lt;DIV&gt;&lt;/DIV&gt;　　CONVERT(VARCHAR(30),size) + ' 8K pages or ' +   &lt;DIV&gt;&lt;/DIV&gt;　　CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'   &lt;DIV&gt;&lt;/DIV&gt;　　FROM sysfiles   &lt;DIV&gt;&lt;/DIV&gt;　　Where name = @LogicalFileName   &lt;DIV&gt;&lt;/DIV&gt;　　Drop TABLE DummyTrans   &lt;DIV&gt;&lt;/DIV&gt;　　SET NOCOUNT OFF   &lt;H3&gt;&lt;A name=&quot;3_7&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;更改某个表&lt;/H3&gt;　　exec sp_changeobjectowner 'tablename','dbo'   &lt;H3&gt;&lt;A name=&quot;3_8&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;存储更改全部表&lt;/H3&gt;　　Create PROCEDURE dbo.User_ChangeObjectOwnerBatch   &lt;DIV&gt;&lt;/DIV&gt;　　@OldOwner as NVARCHAR(128),   &lt;DIV&gt;&lt;/DIV&gt;　　@NewOwner as NVARCHAR(128)   &lt;DIV&gt;&lt;/DIV&gt;　　AS   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @Name as NVARCHAR(128)   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @Owner as NVARCHAR(128)   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE @OwnerName as NVARCHAR(128)   &lt;DIV&gt;&lt;/DIV&gt;　　DECLARE curObject CURSOR FOR   &lt;DIV&gt;&lt;/DIV&gt;　　select 'Name' = name,   &lt;DIV&gt;&lt;/DIV&gt;　　'Owner' = user_name(uid)   &lt;DIV&gt;&lt;/DIV&gt;　　from sysobjects   &lt;DIV&gt;&lt;/DIV&gt;　　where user_name(uid)=@OldOwner   &lt;DIV&gt;&lt;/DIV&gt;　　order by name   &lt;DIV&gt;&lt;/DIV&gt;　　OPEN curObject   &lt;DIV&gt;&lt;/DIV&gt;　　FETCH NEXT FROM curObject INTO @Name, @Owner   &lt;DIV&gt;&lt;/DIV&gt;　　WHILE(@@FETCH_STATUS=0)   &lt;DIV&gt;&lt;/DIV&gt;　　BEGIN   &lt;DIV&gt;&lt;/DIV&gt;　　if @Owner=@OldOwner   &lt;DIV&gt;&lt;/DIV&gt;　　begin   &lt;DIV&gt;&lt;/DIV&gt;　　set @OwnerName = @OldOwner + '.' + rtrim(@Name)   &lt;DIV&gt;&lt;/DIV&gt;　　exec sp_changeobjectowner @OwnerName, @NewOwner   &lt;DIV&gt;&lt;/DIV&gt;　　end   &lt;DIV&gt;&lt;/DIV&gt;　　-- select @name,@NewOwner,@OldOwner   &lt;DIV&gt;&lt;/DIV&gt;　　FETCH NEXT FROM curObject INTO @Name, @Owner   &lt;DIV&gt;&lt;/DIV&gt;　　END   &lt;DIV&gt;&lt;/DIV&gt;　　close curObject   &lt;DIV&gt;&lt;/DIV&gt;　　deallocate curObject   &lt;DIV&gt;&lt;/DIV&gt;　　GO   &lt;H3&gt;&lt;A name=&quot;3_9&quot; rel=&quot;nofollow&quot; &gt;&lt;/A&gt;SQL SERVER中直接循环写入数据&lt;/H3&gt;　　declare @i int   &lt;DIV&gt;&lt;/DIV&gt;　　set @i=1   &lt;DIV&gt;&lt;/DIV&gt;　　while @i&amp;lt;30   &lt;DIV&gt;&lt;/DIV&gt;　　begin   &lt;DIV&gt;&lt;/DIV&gt;　　insert into test (userid) values(@i)   &lt;DIV&gt;&lt;/DIV&gt;　　set @i=@i+1   &lt;DIV&gt;&lt;/DIV&gt;　　end&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183618/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/38851066201043083918495&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 03:28:50 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/38851066201043083918495</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/38851066201043083918495</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/38851066201043083918495</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183618/6216619</fs:itemid></item><item><title>as3与PHP后台交互</title><link>http://492127285jin.blog.163.com/blog/static/3885106620104316444658</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T03:25:27+08:00</dcterms:modified><description>&lt;div&gt;&lt;P&gt;目前flash在各方个面的应用越来越广，而flash也不单只是注重自身绚丽的效果，也需要和外界程序交换数据，以实现更强大的功能，随着as3的到来，flash和外部交互的方式也越来越简便和合理化。今天就在这里谈谈as3和后台数据的交互（这里选择&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.51as.com/&quot;  &gt;&lt;FONT color=&quot;#6d5887&quot; &gt;as3+php&lt;/FONT&gt;&lt;/A&gt;架构，其他配置同理）。&lt;/P&gt;  &lt;P&gt;在as3里，原来的loadVars方法已经被废弃，而改用一系列的类来实现与后台数据的交互，这些类是：URLLoader，URLLoaderDataFormat，URLStream，URLVariables。&lt;BR&gt;URLLoader 类和原来的loadVars类似，是加载文本，2进制数据，xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest 作为构造的参数，使用load方法来加载数据。URLLoder也可以进行监听，这点也loadVars不同，一个简单的示例如下：&lt;/P&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//////////////////actionscript code//////////////////////////////////////////&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLLoader&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//监听数载加载完成事件&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;addEventListener&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;COMPLETE&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//事件相应函数&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;function&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;e&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;){&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// output : this data is from php!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//加载test.php&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;load&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;test.php&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;))&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// ////////////////test.php code/////////////////////////////////&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个变量并赋给一个字符串&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$data&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;this data is form php!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//输出这个变量给flash&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;echo&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;?&amp;amp;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;gt&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;P&gt;从上面的示例可以看出，as3和后台交互是多么简单，但这只是单项的交互，如果要flash向后台发送数据并传回数据该如何去做呢？这个时候你可能会把代码该成这样：&lt;/P&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//actionscript code&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;{&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;hello im flash!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;addEventListener&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;COMPLETE&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;function&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;e&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;){&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// output : this is flash say:&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;load&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;test.php&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;))&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//test.php code//&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$_POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;[&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;]&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;echo&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;this is flash say:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;?&amp;amp;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;gt&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;P&gt;看看输出的代码，你得到了什么？是的，信息并没有传输到php，你还是在用loadVars的方式试图传送数据，但as3里已经不是这样了， URLLoader的data只有在数据被下载完时才会被初始化，在数据没有加载完成时，它是等于null的，也就是说，它只包含接受到的数据，而不管要发送的数据，那么，as3里如何向后台发送数据呢？使用URLVariables。URLVariables允许你在flash和后台程序间传输变量， as3里已经把发送和接受数据分离，再也不像as2的&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://www.51as.com/&quot; &gt;&lt;FONT color=&quot;#6d5887&quot; &gt;loadVars&lt;/FONT&gt;&lt;/A&gt;那样，一个类通吃所有了，那么这个URLVariables如何送要发送的数据呢？&lt;BR&gt;你可能找遍了URLLoader的文档也没有发现与它相关的东西，是的URLLoader并不和URLVariables有关联，而是 URLRequest在使用它，URLRequest包含整个http请求的所有信息，所以我们要发送的数据要放在这里，URLRequest有一个 data属性他接受一个object类型的参数，这就是我们要发送的数据。同时你可能还注意到了，URLRequest也管理用什么样的方式来发送 http请求，它的method属性接受一个字符参数，post或者是get。好了，现在我们来看看它们是怎么工作的：&lt;/P&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//actionscript code&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLRequest&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;test.php&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置传输方式为POST&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;method&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequestMethod&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLVariables&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置要传输的信息&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;hello im flash!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;addEventListener&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;COMPLETE&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;function&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;e&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;){&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// output : this is flash say:hello im flash!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;load&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//test.php code//&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$_POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;[&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;]&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;echo&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;this is flash say:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;?&amp;amp;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;gt&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;  &lt;P&gt;怎么样，是不是也很方便的实现了as3和后台的数据传输？恩，现在我们的程序可以双向交互数据了，但这只是一些简单的数据，如果你要传输带有结构的数据，（熟悉as2的人都知道loadVars可以自动解析下载数据的结构），让我们先按loadVars的方式来尝试下，看看URLLoader是不是能自动的解析下载的数据。&lt;/P&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//actionscript code&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLRequest&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;test.php&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置传输方式为POST&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;method&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequestMethod&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLVariables&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置要传输的信息&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;hello im flash!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;addEventListener&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;COMPLETE&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;function&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;e&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;){&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//outPut: phpMessage=im php message!&amp;amp;amp;flashMessage=hello im flash!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;phpMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// thorw Error;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;flashMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// thorw Error;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;load&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//test.php code//&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$_POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;[&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;]&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$phpMessage&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;im php message!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;echo&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;phpMessage=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$phpMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;&amp;amp;amp;flashMessage=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;?&amp;amp;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;gt&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;P&gt;可以看到，数据被完全下载下来了，但是却没有被解析，还抛出了异常，那么是不是URLLoader就不能自动解析数据了呢？不是，相反 URLLoader提供了多种数据解析方式供你选择。这些数据解析方式都在&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.51as.com/&quot;  &gt;&lt;FONT color=&quot;#6d5887&quot; &gt;URLLoaderDataFormat&lt;/FONT&gt;&lt;/A&gt;里，他们是：BINARY-以2进制的方式解析 TEXT-以文本的方式解析 VARIABLES-以变量-值配对的方式解析。URLLoader的dataFormat属性提供了对解析方式的选择，好，我们再来修改下程序使它变的更完美些：&lt;/P&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//actionscript code&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLRequest&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequest&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;test.php&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置传输方式为POST&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;method&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLRequestMethod&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//声明一个URLVariables&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;var&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: green;&quot;  &gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLVariables&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;()&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置要传输的信息&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;hello im flash!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;values&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//设置以变量-值配对的方式解析数据&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;dataFormat&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;URLLoaderDataFormat&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;VARIABLES&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;addEventListener&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;COMPLETE&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;function&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loaded&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;e&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;:&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;Event&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;){&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//outPut: phpMessage=im php message!&amp;amp;amp;flashMessage=hello im flash!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;phpMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// im php message!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;trace&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;data&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;flashMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;// hello im flash!&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;}&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;loader&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;.&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;load&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;url&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;)&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;DIV&gt;  &lt;OL title=&quot;Double click to hide line number.&quot;  &gt;  &lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(255,165,0);&quot;  &gt;//test.php code//&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$_POST&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;[&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;message&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: olive;&quot;  &gt;]&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$phpMessage&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;=&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;im php message!&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: green;&quot;  &gt;echo&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;&amp;nbsp;&lt;WBR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;phpMessage=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$phpMessage&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: red;&quot;  &gt;&amp;amp;amp;flashMessage=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,139);&quot;  &gt;$flashData&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(139,0,0);&quot;  &gt;&quot;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt;   &lt;/LI&gt;&lt;LI&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;?&amp;amp;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: blue;&quot;  &gt;gt&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: gray;&quot;  &gt;;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;  &lt;P&gt;以上这些就是as3里和后台交互的基础内容，现在你可以在as3里创建这样的交互，获取动态数据来丰富你的程序，在你开始自己动手实验之前，还有一些东西值得注意：&lt;BR&gt;1，记得捕获和处理异常（上述的例子里都是假定在完美的测试环境下运行，所以没有加上异常捕获和处理的代码，但现实中你可能会遇到各种各样的情况）URLLoader可能引发好几种异常情况（详细请参见说明文档）&lt;BR&gt;你应该通过监听ioError和securityError事件，或者通过try-catch来处理他们，即使你确信不会发生这样的问题。&lt;BR&gt;2，文件的编码，这是个常见的问题，经常很多数据变成了乱码，或者解析出错，都是因为编码的问题，我的做法是确保发送的数据和后台传回的数据都是UTF-8格式（因为flash默认编码为utf-8）&lt;BR&gt;最后希望这篇文章能对你有所帮助，也欢迎你留言讨论相关的问题。&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183617/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/3885106620104316444658&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 03:25:27 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/3885106620104316444658</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/3885106620104316444658</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/3885106620104316444658</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183617/6216619</fs:itemid></item><item><title>在PHP中操作JSON对象</title><link>http://492127285jin.blog.163.com/blog/static/3885106620105283124787</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T03:17:04+08:00</dcterms:modified><description>&lt;div&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;  &lt;DIV&gt;  &lt;P&gt;互联网的今天，AJAX已经不是什么陌生的词汇了。说起AJAX，可能会立即想起因RSS而兴起的XML。XML的解析，恐怕已经不是什么难题了， 特别是&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.son1c.cn/index.php?tag=PHP&quot;  &gt;&lt;SPAN style=&quot;TEXT-DECORATION: underline;&quot;  &gt;PHP&lt;/SPAN&gt;&lt;/A&gt;5，大量的XML解析器的涌现，如最轻量级的SimpleXML。不过对于AJAX来说，XML的解析更倾向于前台Javascript的支 持度。我想所有解析过XML的人，都会因树和节点而头大。不可否认，XML是很不错的数据存储方式，但是其灵活恰恰造成了其解析的困难。当然，这里所指的 困难，是相对于本文的主角－－&lt;A rel=&quot;nofollow&quot; href=&quot;http://www.son1c.cn/index.php?tag=JSON&quot;  &gt;&lt;SPAN style=&quot;TEXT-DECORATION: underline;&quot;  &gt;JSON&lt;/SPAN&gt;&lt;/A&gt;而言。&lt;/P&gt;  &lt;P&gt;JSON为何物？我就不重复概念了。通俗的说，它是一种数据的存储格式，就像PHP序列化 后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放，就可以很容易的反序列化后应用。JSON也是如此，只不过他搭建的是客户端 Javascript和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串，然后把这个字符串传给前台 Javascript，Javascirpt就可以很容易的将其反JSON然后应用。说通俗点，它真的很像数组。&lt;/P&gt;  &lt;P&gt;言归正传，如何使用JSON。PHP5.2开始内置了JSON的支持。当然，如果低于这个版本的话，那么市面上有很多PHP版本的实现，随便下一个用就OK啦。现在主要是说说PHP内置支持的JSON。很简单，两个函数：json_encode和json_decode（跟序列化很像啦）。一个编码，一个解码。先看看编码的使用：&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;$arr = array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'name' =&amp;gt; '陈毅鑫',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'nick' =&amp;gt; '深空',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'contact' =&amp;gt; array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'email' =&amp;gt; 'shenkong at qq dot com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'website' =&amp;gt; 'http://www.okajax.com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$json_string = json_encode($arr);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;echo $json_string;&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;?&amp;gt;&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;很简单的将一个数组JSON了。需要指出的是，在非UTF-8编码下，中文字符将不可被encode，结果会出来空值，所以，如果你使用 gb2312编写PHP代码，那么就需要将包含中文的内容使用iconv或者mb转为UTF-8再进行json_encode，上面输出结果如下：&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;{&quot;name&quot;:&quot;\陈\毅\鑫&quot;,&quot;nick&quot;:&quot;\深\空&quot;,&quot;contact&quot;:{&quot;email&quot;:&quot;shenkong at qq dot com&quot;,&quot;website&quot;:&quot;http:\/\/www.okajax.com&quot;}}&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;我都说了和序列化很像，你还不信。编码后就要解码，PHP提供了相应的函数json_decode，json_decode执行后，将会得到一个对象，操作如下：&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;$arr = array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'name' =&amp;gt; '陈毅鑫',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'nick' =&amp;gt; '深空',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'contact' =&amp;gt; array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'email' =&amp;gt; 'shenkong at qq dot com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'website' =&amp;gt; 'http://www.okajax.com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$json_string = json_encode($arr);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$obj = json_decode($json_string);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;print_r($obj);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;?&amp;gt;&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;访问对象内的属性会吧？$obj-&amp;gt;name，这样子的，当然，也可以把它转位数组，方便调用啦：&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;$json_string = json_encode($arr);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$obj = json_decode($json_string);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$arr = (array) $obj;&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;print_r($arr);&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;PHP转来转去的用途不是特别大，除了缓存生成，感觉还不如直接存数组呢，不过，当你和前台交互的时候，它的作用就出来咯，下面看看我怎么用Javascript来使用这段字符：&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;&amp;nbsp;&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;上面中，直接将这个字符串赋给一个变量，它就变成一个Javascript数组了（专业化术语应该不叫数组，不过由于PHP的习惯问题，我就一直叫 数组好了，方便理解）。这样，可以很方便的对arr进行遍历或者任意做你想做的事情了。写到这里，好像都没提到AJAX哦？是哦，联想一下，如果服务端返 回的responseText用JSON过的字符串代替XML的话，前台Javascript处理起来是不是很方便呢？狗皮膏药就是这样用的。&lt;/P&gt;  &lt;P&gt;其实写到这里，除了数据的存储格式不太一样外，JSON和XML也没什么太大区别哦，不过下面我说的一点。虽然和XML没多大关系，不过，可以说明 JSON更大范围的应用，那就是，跨域的数据调用。由于安全性问题，AJAX不支持跨域调用，这样要调用不同域名下的数据，很麻烦哦，虽然有解决方案 （stone在他的讲座上提到过了代理啊什么的虽然听不懂但是知道能解决）。我写两个文件，足以展示跨域调用了。&lt;/P&gt;  &lt;P&gt;主调文件index.html&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;被调文件profile.php&lt;/P&gt;  &lt;OL&gt;  &lt;LI&gt;$arr = array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'name' =&amp;gt; '陈毅鑫',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'nick' =&amp;gt; '深空',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'contact' =&amp;gt; array(&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'email' =&amp;gt; 'shenkong at qq dot com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'website' =&amp;gt; 'http://www.okajax.com',&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;$json_string = json_encode($arr);&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;echo &quot;getProfile($json_string)&quot;;&amp;nbsp;   &lt;/LI&gt;&lt;LI&gt;?&amp;gt;&lt;/LI&gt;&lt;/OL&gt;  &lt;P&gt;很显然，当index.html调用profile.php时，JSON字符串生成，并作为参数传入getProfile，然后将昵称插入到div中，这样一次跨域数据交互就完成了，是不是特别简单。&lt;/P&gt;  &lt;P&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;php&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #800080;&quot;  &gt;$json&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;[{\&quot;coding\&quot;:\&quot;CAP001\&quot;,\&quot;accId\&quot;:\&quot;\&quot;},{\&quot;coding\&quot;:\&quot;MIS00\&quot;,\&quot;accId\&quot;:\&quot;\&quot;},{\&quot;coding\&quot;:\&quot;3CAN10511\&quot;,\&quot;accId\&quot;:\&quot;\&quot;},{\&quot;coding\&quot;:\&quot;3CAN10512\&quot;,\&quot;accId\&quot;:\&quot;\&quot;}]&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;'&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #800080;&quot;  &gt;$json&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;=&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #008080;&quot;  &gt;stripslashes&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #800080;&quot;  &gt;$json&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;);&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #008080;&quot;  &gt;var_dump&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;(json_decode(&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #800080;&quot;  &gt;$json&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;,&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #0000ff;&quot;  &gt;true&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;));&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #000000;&quot;  &gt;?&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183614/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/3885106620105283124787&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 03:17:04 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/3885106620105283124787</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/3885106620105283124787</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/3885106620105283124787</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183614/6216619</fs:itemid></item><item><title>ajax + php 使用json格式传输数据</title><link>http://492127285jin.blog.163.com/blog/static/3885106620105274425456</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T03:17:04+08:00</dcterms:modified><description>&lt;div&gt;&lt;DIV&gt;ajax + php 使用json格式传输数据&lt;/DIV&gt;  &lt;TABLE style=&quot;WIDTH: 100%; TABLE-LAYOUT: fixed;&quot;  &gt;  &lt;TBODY&gt;  &lt;TR&gt;  &lt;TD&gt;  &lt;DIV id=&quot;blog_text&quot; &gt;  &lt;P&gt;做web开发的都很清楚如何使用ajax+php开发，这里要说的并不是如何搭建前后台，而是说说使用json来传输。我们经常需要从数据库中查找数据，然后传送给前台，这些数据大多数都是key-value的形式，这个时候使用json就很方便了。下面先介绍一下json：&lt;/P&gt;  &lt;P&gt;JSON构建的结构：&lt;/P&gt;  &lt;P&gt;1. “名称/值”对的集合（A collection of name/value pairs）。不同的语言中，它被理解为对象（object），纪录（record），结构（struct），&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/6983.htm&quot; &gt;字典&lt;/A&gt;（dictionary），&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/329976.htm&quot; &gt;哈希表&lt;/A&gt;（hash table），有键列表（keyed list），或者关联&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/209670.htm&quot; &gt;数组&lt;/A&gt; （associative array）。&lt;/P&gt;  &lt;DIV&gt;&lt;/DIV&gt;  &lt;P&gt;2. 值的有序列表（An ordered list of values）。在大部分语言中，它被理解为数组（array）。&lt;/P&gt;  &lt;DIV&gt;&lt;/DIV&gt;  &lt;P&gt;　　这些都是常见的&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/9900.htm&quot; &gt;数据结构&lt;/A&gt;。事实上大部分现代&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/3314.htm&quot; &gt;计算机&lt;/A&gt;语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的&lt;A target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/3281.htm&quot; &gt;编程&lt;/A&gt;语言之间交换成为可能&lt;/P&gt;  &lt;P&gt;&lt;/P&gt;  &lt;P&gt;JSON的具体形式&lt;/P&gt;  &lt;P&gt;1、对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始，以“}”结束。每个“名称”后跟一个“：”，“‘名称/值’对”之间使用“，”分隔。&lt;/P&gt;  &lt;DIV&gt;&lt;/DIV&gt;  &lt;P&gt;2、数组是值（value）的有序集合。一个数组以“[”开始，“]”结束。值之间使用“，”分隔。&lt;/P&gt;  &lt;DIV&gt;&lt;/DIV&gt;  &lt;P&gt;3、值（value）可以是双引号括起来的字符串（String）、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。&lt;/P&gt;  &lt;DIV&gt;&lt;/DIV&gt;  &lt;P&gt;4、字符串（string）是由双引号包围的任意数量Unicode字符的集合，使用反斜体转义。一个字符(character)即一个单独的字符串(characeter string).&lt;/P&gt;  &lt;P&gt;&lt;/P&gt;  &lt;P&gt;JSON是JavaScript的一个子集，因此它可清晰的运用于此语言中。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;var myJSONObject = {&quot;bindings&quot;: [&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　　　{&quot;ircEvent&quot;: &quot;PRIVMSG&quot;, &quot;method&quot;: &quot;newURI&quot;, &quot;regex&quot;: &quot;^http://.*&quot;},&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　　　{&quot;ircEvent&quot;: &quot;PRIVMSG&quot;, &quot;method&quot;: &quot;deleteURI&quot;, &quot;regex&quot;: &quot;^delete.*&quot;},&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　　　{&quot;ircEvent&quot;: &quot;PRIVMSG&quot;, &quot;method&quot;: &quot;randomURI&quot;, &quot;regex&quot;: &quot;^random.*&quot;}&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　]&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;};&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;上面的示例，创建了一个包括单独成员”bindings”的对象，此成员包括一个含有三个对象（”ircEvent”, “method”, 与 “regex”）的数组成员可以通过.或者下标操作符检索。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　myJSONObject.bindings[0].method　　// &quot;newURI&quot;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;为了将JSON文本转换为对象，可以使用eval()函数。eval()函数调用JavaScript编辑器。由于JSON是JavaScript的子集，因此编译器将正确的解析文本并产生对象结构。&lt;FONT color=&quot;#ff0000&quot; &gt;&lt;STRONG&gt;文本必须括在括号中&lt;/STRONG&gt;&lt;/FONT&gt;避免产生JavaScript的语法歧义。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;　　var myObject = eval('(' + myJSONtext + ')');&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;我们只需要通过上面这句代码就可以将json格式的字符串转换为对象了，然后就可以按照数组那样使用了，是不是很方便呢。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;平常我们需要将从数据库中找到的数据编辑为json字符串的格式，下面是使用php作为后台，使用json的例子：&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&amp;lt;?&lt;BR&gt;$username = $_GET['username'];&lt;BR&gt;$conn = mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;root&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp; //链接数据库&lt;BR&gt;mysql_select_db(&quot;user&quot;, $conn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //选择user数据库&lt;BR&gt;$sql = &quot;select * from userinfo where username='&quot;.$username.&quot;'&quot;;&lt;BR&gt;$result = mysql_query($sql, $conn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //执行sql语句查询&lt;BR&gt;$first = true;&lt;BR&gt;$response = &quot;[&quot;;&lt;BR&gt;while($row = mysql_fetch_array($result))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //将查找结果格式化为json格式的字符串&lt;BR&gt;{&lt;BR&gt;if(true == $first)&lt;BR&gt;{&lt;BR&gt;$response .= &quot;{'userid':'&quot;.$row['userid'].&quot;','username':'&quot;.$row['username'].&quot;'}&quot;;&lt;BR&gt;$first = false;&lt;BR&gt;}&lt;BR&gt;else&lt;BR&gt;{&lt;BR&gt;$response .= &quot;,{'userid':'&quot;.$row['userid'].&quot;','username':'&quot;.$row['username'].&quot;'}&quot;;&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;$response .= &quot;]&quot;;&lt;BR&gt;echo $response;&lt;BR&gt;?&amp;gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;例如我们从数据库中找到两条记录：id=1 name=hello;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=2 name=hello;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;那么格式化的json字符串就是： &lt;FONT color=&quot;#ff0000&quot; &gt;&lt;STRONG&gt;[{'userid':'1','username':'hello'},{'userid':'2','username':'hello'}]&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;&lt;FONT color=&quot;#ff0000&quot; &gt;要注意的是，我看到网上很多都说使用“”，但是我试过发现不行，使用单引号就ok。&lt;/FONT&gt;&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;在前台使用JavaScript中的eval函数就可以将上面这行红色的字符串转化为对象了（简单点说就是数组），再使用下标等读取里面的内容。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;当然，前后台的数据交流还要考虑到中文的问题和不同种类的浏览器的问题，由于不是本文的重点，在此就不讨论了。&lt;/P&gt;  &lt;P style=&quot;TEXT-INDENT: 2em;&quot;  &gt;以上是本人曾经遇到过的问题，希望写出来能对遇到同样问题的朋友有些帮助。&lt;/P&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183615/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/3885106620105274425456&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 03:17:04 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/3885106620105274425456</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/3885106620105274425456</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/3885106620105274425456</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183615/6216619</fs:itemid></item><item><title>如何通过网站赚钱</title><link>http://492127285jin.blog.163.com/blog/static/38851066201062234419561</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T01:03:42+08:00</dcterms:modified><description>&lt;div&gt;&lt;span style=&quot;font-family: Simsun;&quot;  &gt;&lt;p&gt;如何通过网站赚钱&lt;/p&gt;&lt;p&gt;　　1.投放广告。初期网站赚钱最主要方式，占很大一定比列。&lt;/p&gt;&lt;p&gt;　　a、&lt;a title=&quot;&amp;#32593;&amp;#32476;&amp;#24191;&amp;#21578;&quot; style=&quot;font-size: 14px; color: rgb(0, 0, 0); text-decoration: none;&quot; rel=&quot;nofollow&quot; href=&quot;http://www.tooec.com/3/258_0.shtml&quot;  &gt;&lt;font color=&quot;#0000ff&quot;  &gt;网络广告&lt;/font&gt;&lt;/a&gt;联盟赚钱。首先选择的对象是Google AdSense和百度联盟，其次是阿里妈妈和一些比较诚信的广告联盟。这个是在建站初期的广告型式，不过也可一直保留，如果你觉得有必要的话。&lt;/p&gt;&lt;p&gt;　　b、相应行业的厂商广告。这就看你是做那一行了，例如你网站是做有关家具的，就找家具的厂商来你的网站上打广告。 这个应该慢慢地成为你的网站的最主要的广告收入来源，因为这是你网站的优势所在。你网站的优势那就是：专业、细分、目标客户明确，能把广告投放到最有可能成为客户的眼中，这点也可是最有可能打动厂家在你的网站投放广告的原因，所以要好好运作。&lt;/p&gt;&lt;p&gt;　　2、发展会员。一开始以免费会员为主，等网站有了一定的知名度，并能够让会员心甘情愿地付费时，才能做收费会员，并且收多少钱、怎么收，也是要慎重考虑的，毕竟人们已经习惯了免费的东西，如果没有点价值的话，是很难获得成功的。&lt;/p&gt;&lt;p&gt;　　3、&lt;a title=&quot;&amp;#30005;&amp;#23376;&amp;#21830;&amp;#21153;&quot; style=&quot;font-size: 14px; color: rgb(0, 0, 0); text-decoration: none;&quot; rel=&quot;nofollow&quot; href=&quot;http://www.tooec.com/main/dzsw.shtml&quot;  &gt;&lt;font color=&quot;#0000ff&quot;  &gt;电子商务&lt;/font&gt;&lt;/a&gt;。最终方向，也是最主要的赚钱方式。&lt;/p&gt;&lt;p&gt;　　所谓的电子商务，不仅仅是产品的简单买卖，还关系到付款、&lt;a title=&quot;&amp;#29289;&amp;#27969;&quot; style=&quot;font-size: 14px; color: rgb(0, 0, 0); text-decoration: none;&quot; rel=&quot;nofollow&quot; href=&quot;http://www.tooec.com/3/209_0.shtml&quot;  &gt;&lt;font color=&quot;#ff0000&quot;  &gt;物流&lt;/font&gt;&lt;/a&gt;和售后服务等一系列的因素，可以说是一个比较庞杂的系统工程，相应的问题可自己先找一些电子商务的书来学习，并自己慢慢地摸索，毕竟电子商务还是一个新鲜领域，再加上变化莫测的网络世界，需要你花不少的时间和精力来学习。&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183611/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/38851066201062234419561&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 01:03:42 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/38851066201062234419561</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/38851066201062234419561</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/38851066201062234419561</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183611/6216619</fs:itemid></item><item><title>SEO优化步骤8步</title><link>http://492127285jin.blog.163.com/blog/static/388510662010624105134604</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T00:58:42+08:00</dcterms:modified><description>&lt;div&gt;&lt;span style=&quot;font-family: arial; line-height: 24px;&quot;  &gt;&lt;h2 style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 6px; padding-left: 0px; font-size: 18px; font-weight: bold; line-height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(222, 223, 225); clear: both;&quot;  &gt;&lt;span style=&quot;font-weight: normal; font-size: 14px;&quot;  &gt;SEO技术并不是简单的几个建议，而是一项需要足够耐心和细致的脑力劳动。大体上，SEO优化主要分为8小步:&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　1、关键词分析（也叫关键词定位）&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　这是进行SEO优化最重要的一环，关键词分析包括：关键词关注量分析、竞争对手分析、关键词与网站相关性分析、关键词布置、关键词排名预测。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　2、网站架构分析&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　网站结构符合搜索引擎的爬虫喜好则有利于SEO优化。网站架构分析包括：剔除网站架构不良设计、实现树状目录结构、网站导航与链接优化。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　3、网站目录和页面优化&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　SEO不止是让网站首页在搜索引擎有好的排名，更重要的是让网站的每个页面都带来流量。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　4、内容发布和链接布置&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　搜索引擎喜欢有规律的网站内容更新，所以合理安排网站内容发布日程是SEO优化的重要技巧之一。链接布置则把整个网站有机地串联起来，让搜索引擎明白每个网页的重要性和关键词，实施的参考是第一点的关键词布置。友情链接战役也是这个时候展开。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　5、与搜索引擎对话&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　向各大搜索引擎登陆入口提交尚未收录站点。在搜索引擎看SEO的效果，通过site:你的域名，知道站点的收录和更新情况。通过domain:你的域名或者link:你的域名，知道站点的反向链接情况。更好的实现与搜索引擎对话，建议采用Google网站管理员工具。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　6、建立网站地图SiteMap&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　根据自己的网站结构，制作网站地图，让你的网站对搜索引擎更加友好化。让搜索引擎能过SiteMap就可以访问整个站点上的所有网页和栏目。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　最好有两套siteMap,一套用户方便客户快速查找站点信息（html格式），另一套方便搜索引擎得知网站的的更新频率、更新时间、页面权重（xml格式）。所建立的sitemap要和你网站的实际情况相符合。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　7、高质量的友情链接&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　建立高质量的友情链接，对于SEO优化来说，可以提高网站&lt;a style=&quot;color: rgb(51, 102, 204);&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; href=&quot;http://baike.baidu.com/view/20039.htm&quot;  &gt;PR值&lt;/a&gt;以及网站的更新率，都是非常关键性的问题。&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　8、网站流量分析&lt;div style=&quot;height: 10px; line-height: 10px;&quot;  &gt;&lt;/div&gt;　　网站流量分析从SEO结果上指导下一步的SEO策略，同时对网站的用户体验优化也有指导意义。流量分析工具，建议采用分析工具Google analytics分析工具和百度统计分析工具。　以上8步贵在坚持.流量多了也别骄傲,少了也别灰心.努力前进,学好seo优化,你一定能成功&lt;/span&gt;&lt;/h2&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183607/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/388510662010624105134604&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 00:58:42 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/388510662010624105134604</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/388510662010624105134604</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/388510662010624105134604</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183607/6216619</fs:itemid></item><item><title>C++虚函数详谈 转载</title><link>http://492127285jin.blog.163.com/blog/static/3885106620106302141588</link><slash:comments>0</slash:comments><dcterms:modified>2011-09-30T00:39:09+08:00</dcterms:modified><description>&lt;div&gt;&lt;span style=&quot;font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; line-height: normal; font-size: 12px; border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;&quot;  &gt;&lt;div style=&quot; padding-left: 15px; font-weight: bolder; font-size: 1em; margin-top: 6px; margin-bottom: 0px; background-repeat: no-repeat no-repeat;&quot;  &gt;&lt;a id=&quot;viewpost1_TitleUrl&quot; style=&quot;color: rgb(0, 0, 0); text-decoration: none;&quot; rel=&quot;nofollow&quot; href=&quot;http://www.cppblog.com/xczhang/archive/2008/01/20/41508.html&quot;  &gt;C&lt;/a&gt;++虚函数表解析&lt;/div&gt;&lt;div style=&quot;padding-right: 10px; padding-left: 15px; padding-bottom: 2px; padding-top: 2px; font: normal normal normal 13px/normal verdana, sans-serif; color: rgb(51, 51, 51); line-height: 17px; margin-top: 0px;&quot;  &gt;&lt;p&gt;C++中的虚函数的作用主要是实现了多态的机制。关于多态，简而言之就是用父类型别的指针指向其子类的实例，然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”，这是一种泛型技术。所谓泛型技术，说白了就是试图使用不变的代码来实现可变的算法。比如：模板技术，RTTI技术，虚函数技术，要么是试图做到在编译时决议，要么试图做到运行时决议。&lt;/p&gt;&lt;p&gt;关于虚函数的使用方法，我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中，我只想从虚函数的实现机制上面为大家 一个清晰的剖析。&lt;/p&gt;&lt;p&gt;当然，相同的文章在网上也出现过一些了，但我总感觉这些文章不是很容易阅读，大段大段的代码，没有图片，没有详细的说明，没有比较，没有举一反三。不利于学习和阅读，所以这是我想写下这篇文章的原因。也希望大家多给我提意见。&lt;/p&gt;&lt;p&gt;言归正传，让我们一起进入虚函数的世界。&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;虚函数表&lt;/h3&gt;&lt;p&gt;对C++ 了解的人都应该知道虚函数（Virtual Function）是通过一张虚函数表（Virtual Table）来实现的。简称为V-Table。 在这个表中，主是要一个类的虚函数的地址表，这张表解决了继承、覆盖的问题，保证其容真实反应实际的函数。这样，在有虚函数的类的实例中这个表被分配在了 这个实例的内存中，所以，当我们用父类的指针来操作一个子类的时候，这张虚函数表就显得由为重要了，它就像一个地图一样，指明了实际所应该调用的函数。&lt;/p&gt;&lt;p&gt;这里我们着重看一下这张虚函数表。在C++的标准规格说明书中说到，编译器必需要保证虚函数表的指针存在于对象实例中最前面的位置（这是为了保证正确取到虚函数的偏移量）。 这意味着我们通过对象实例的地址得到这张虚函数表，然后就可以遍历其中函数指针，并调用相应的函数。&lt;/p&gt;&lt;p&gt;听我扯了那么多，我可以感觉出来你现在可能比以前更加晕头转向了。 没关系，下面就是实际的例子，相信聪明的你一看就明白了。&lt;/p&gt;&lt;p&gt;假设我们有这样的一个类：&lt;/p&gt;&lt;p&gt;class Base {&lt;/p&gt;&lt;p&gt;public:&lt;/p&gt;&lt;p&gt;virtual void f() { cout &amp;lt;&amp;lt; &quot;Base::f&quot; &amp;lt;&amp;lt; endl; }&lt;/p&gt;&lt;p&gt;virtual void g() { cout &amp;lt;&amp;lt; &quot;Base::g&quot; &amp;lt;&amp;lt; endl; }&lt;/p&gt;&lt;p&gt;virtual void h() { cout &amp;lt;&amp;lt; &quot;Base::h&quot; &amp;lt;&amp;lt; endl; }&lt;/p&gt;&lt;p&gt;};&lt;/p&gt;&lt;p&gt;按照上面的说法，我们可以通过Base的实例来得到虚函数表。 下面是实际例程：&lt;/p&gt;&lt;p&gt;typedef void(*Fun)(void);&lt;/p&gt;&lt;p&gt;Base b;&lt;/p&gt;&lt;p&gt;Fun pFun = NULL;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &quot;虚函数表地址：&quot; &amp;lt;&amp;lt; (int*)(&amp;amp;b) &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; &quot;虚函数表 — 第一个函数地址：&quot; &amp;lt;&amp;lt; (int*)*(int*)(&amp;amp;b) &amp;lt;&amp;lt; endl;&lt;/p&gt;&lt;p&gt;// Invoke the first virtual function&lt;/p&gt;&lt;p&gt;pFun = (Fun)*((int*)*(int*)(&amp;amp;b));&lt;/p&gt;&lt;p&gt;pFun();&lt;/p&gt;&lt;p&gt;实际运行经果如下：(Windows XP+VS2003, Linux 2.6.22 + GCC 4.1.3)&lt;/p&gt;&lt;p&gt;虚函数表地址：0012FED4&lt;/p&gt;&lt;p&gt;虚函数表 — 第一个函数地址：0044F148&lt;/p&gt;&lt;p&gt;Base::f&lt;/p&gt;&lt;p&gt;通过这个示例，我们可以看到，我们可以通过强行把&amp;amp;b转成int *，取得虚函数表的地址，然后，再次取址就可以得到第一个虚函数的地址了，也就是Base::f()，这在上面的程序中得到了验证（把int* 强制转成了函数指针）。通过这个示例，我们就可以知道如果要调用Base::g()和Base::h()，其代码如下：&lt;/p&gt;&lt;p&gt;(Fun)*((int*)*(int*)(&amp;amp;b)+0); // Base::f()&lt;/p&gt;&lt;p&gt;(Fun)*((int*)*(int*)(&amp;amp;b)+1); // Base::g()&lt;/p&gt;&lt;p&gt;(Fun)*((int*)*(int*)(&amp;amp;b)+2); // Base::h()&lt;/p&gt;&lt;p&gt;这个时候你应该懂了吧。什么？还是有点晕。也是，这样的代码看着太乱了。没问题，让我画个图解释一下。如下所示：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_vtable1.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;注意：在上面这个图中，我在虚函数表的最后多加了一个结点，这是虚函数表的结束结点，就像字符串的结束符“\0”一样，其标志了虚函数表的结束。这个结束标志的值在不同的编译器下是不同的。在WinXP+VS2003下，这个值是NULL。而在Ubuntu 7.10 + Linux 2.6.22 + GCC 4.1.3下，这个值是如果1，表示还有下一个虚函数表，如果值是0，表示是最后一个虚函数表。&lt;/p&gt;&lt;p&gt;下面，我将分别说明“无覆盖”和“有覆盖”时的虚函数表的样子。没有覆盖父类的虚函数是毫无意义的。我之所以要讲述没有覆盖的情况，主要目的是为了给一个对比。在比较之下，我们可以更加清楚地知道其内部的具体实现。&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;一般继承（无虚函数覆盖）&lt;/h3&gt;&lt;p&gt;下面，再让我们来看看继承时的虚函数表是什么样的。假设有如下所示的一个继承关系：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_Drawing3.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;请注意，在这个继承关系中，子类没有重载任何父类的函数。那么，在派生类的实例中，其虚函数表如下所示：&lt;/p&gt;&lt;p&gt;对于实例：Derive d; 的虚函数表如下：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_vtable2.JPG&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;我们可以看到下面几点：&lt;/p&gt;&lt;p&gt;1）虚函数按照其声明顺序放于表中。&lt;/p&gt;&lt;p&gt;2）父类的虚函数在子类的虚函数前面。&lt;/p&gt;&lt;p&gt;我相信聪明的你一定可以参考前面的那个程序，来编写一段程序来验证。&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;一般继承（有虚函数覆盖）&lt;/h3&gt;&lt;p&gt;覆盖父类的虚函数是很显然的事情，不然，虚函数就变得毫无意义。下面，我们来看一下，如果子类中有虚函数重载了父类的虚函数，会是一个什么样子？假设，我们有下面这样的一个继承关系。&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_Drawing4.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;为了让大家看到被继承过后的效果，在这个类的设计中，我只覆盖了父类的一个函数：f()。那么，对于派生类的实例，其虚函数表会是下面的一个样子：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_vtable3.JPG&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;我们从表中可以看到下面几点，&lt;/p&gt;&lt;p&gt;1）覆盖的f()函数被放到了虚表中原来父类虚函数的位置。&lt;/p&gt;&lt;p&gt;2）没有被覆盖的函数依旧。&lt;/p&gt;&lt;p&gt;这样，我们就可以看到对于下面这样的程序，&lt;/p&gt;&lt;p&gt;Base *b = new Derive();&lt;/p&gt;&lt;p&gt;b-&amp;gt;f();&lt;/p&gt;&lt;p&gt;由b所指的内存中的虚函数表的f()的位置已经被Derive::f()函数地址所取代，于是在实际调用发生时，是Derive::f()被调用了。这就实现了多态。&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;多重继承（无虚函数覆盖）&lt;/h3&gt;&lt;p&gt;下面，再让我们来看看多重继承中的情况，假设有下面这样一个类的继承关系。注意：子类并没有覆盖父类的函数。&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_Drawing1.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;对于子类实例中的虚函数表，是下面这个样子：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_vtable4.JPG&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;我们可以看到：&lt;/p&gt;&lt;p&gt;1） 每个父类都有自己的虚表。&lt;/p&gt;&lt;p&gt;2） 子类的成员函数被放到了第一个父类的表中。（所谓的第一个父类是按照声明顺序来判断的）&lt;/p&gt;&lt;p&gt;这样做就是为了解决不同的父类类型的指针指向同一个子类实例，而能够调用到实际的函数。&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;多重继承（有虚函数覆盖）&lt;/h3&gt;&lt;p&gt;下面我们再来看看，如果发生虚函数覆盖的情况。&lt;/p&gt;&lt;p&gt;下图中，我们在子类中覆盖了父类的f()函数。&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_Drawing2.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;下面是对于子类实例中的虚函数表的图：&lt;/p&gt;&lt;p&gt;&lt;img title=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  alt=&quot;虚函数 转载 - 蓝色菊花茶 - 技术领先 引领时尚&quot;  src=&quot;http://p.blog.csdn.net/images/p_blog_csdn_net/haoel/15190/o_vtable5.jpg&quot;  border=&quot;0&quot;  &gt;&lt;/p&gt;&lt;p&gt;我们可以看见，三个父类虚函数表中的f()的位置被替换成了子类的函数指针。这样，我们就可以任一静态类型的父类来指向子类，并调用子类的f()了。如：&lt;/p&gt;&lt;p&gt;Derive d;&lt;/p&gt;&lt;p&gt;Base1 *b1 = &amp;amp;d;&lt;/p&gt;&lt;p&gt;Base2 *b2 = &amp;amp;d;&lt;/p&gt;&lt;p&gt;Base3 *b3 = &amp;amp;d;&lt;/p&gt;&lt;p&gt;b1-&amp;gt;f(); //Derive::f()&lt;/p&gt;&lt;p&gt;b2-&amp;gt;f(); //Derive::f()&lt;/p&gt;&lt;p&gt;b3-&amp;gt;f(); //Derive::f()&lt;/p&gt;&lt;p&gt;b1-&amp;gt;g(); //Base1::g()&lt;/p&gt;&lt;p&gt;b2-&amp;gt;g(); //Base2::g()&lt;/p&gt;&lt;p&gt;b3-&amp;gt;g(); //Base3::g()&lt;/p&gt;&lt;h3 style=&quot;font-size: 13px; color: rgb(0, 0, 0);&quot;  &gt;安全性&lt;/h3&gt;&lt;p&gt;每次写C++的文章，总免不了要批判一下C++。这篇文章也不例外。通过上面的讲述，相信我们对虚函数表有一个比较细致的了解了。水可载舟，亦可覆舟。下面，让我们来看看我们可以用虚函数表来干点什么坏事吧。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;一、通过父类型的指针访问子类自己的虚函数&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们知道，子类没有重载父类的虚函数是一件毫无意义的事情。因为多态也是要基于函数重载的。虽然在上面的图中我们可以看到Base1的虚表中有Derive的虚函数，但我们根本不可能使用下面的语句来调用子类的自有虚函数：&lt;/p&gt;&lt;p&gt;Base1 *b1 = new Derive();&lt;/p&gt;&lt;p&gt;b1-&amp;gt;f1(); //编译出错&lt;/p&gt;&lt;p&gt;任何妄图使用父类指针想调用子类中的&lt;strong&gt;未覆盖父类的成员函数&lt;/strong&gt;的行为都会被编译器视为非法，所以，这样的程序根本无法编译通过。但在运行时，我们可以通过指针的方式访问虚函数表来达到违反C++语义的行为。（关于这方面的尝试，通过阅读后面附录的代码，相信你可以做到这一点）&lt;/p&gt;&lt;p&gt;&lt;strong&gt;二、访问non-public&lt;/strong&gt;&lt;strong&gt;的虚函数&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;另外，如果父类的虚函数是private或是protected的，但这些非public的虚函数同样会存在于虚函数表中，所以，我们同样可以使用访问虚函数表的方式来访问这些non-public的虚函数，这是很容易做到的。&lt;/p&gt;&lt;p&gt;如：&lt;/p&gt;&lt;p&gt;class Base {&lt;/p&gt;&lt;p&gt;private:&lt;/p&gt;&lt;p&gt;virtual void f() { cout &amp;lt;&amp;lt; &quot;Base::f&quot; &amp;lt;&amp;lt; endl; }&lt;/p&gt;&lt;p&gt;};&lt;/p&gt;&lt;p&gt;class Derive : public Base{&lt;/p&gt;&lt;p&gt;};&lt;/p&gt;&lt;p&gt;typedef void(*Fun)(void);&lt;/p&gt;&lt;p&gt;void main() {&lt;/p&gt;&lt;p&gt;Derive d;&lt;/p&gt;&lt;p&gt;Fun pFun = (Fun)*((int*)*(int*)(&amp;amp;d)+0);&lt;/p&gt;&lt;p&gt;pFun();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/604183606/hellosomith/feedsky/s.gif?r=http://492127285jin.blog.163.com/blog/static/3885106620106302141588&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Fri, 30 Sep 2011 00:39:09 +0800</pubDate><author>蓝色菊花茶</author><comments>http://492127285jin.blog.163.com/blog/static/3885106620106302141588</comments><guid isPermaLink="false">http://492127285jin.blog.163.com/blog/static/3885106620106302141588</guid><dc:creator>蓝色菊花茶</dc:creator><fs:srclink>http://492127285jin.blog.163.com/blog/static/3885106620106302141588</fs:srclink><fs:srcfeed>http://492127285jin.blog.163.com/rss/</fs:srcfeed><fs:itemid>feedsky/hellosomith/~8111975/604183606/6216619</fs:itemid></item></channel></rss>
