<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[Ajax技术一日通教程]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Thu, 12 Oct 2006 00:38:53 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	Ajax这个名称怎么来的，本人也不得而之了，大概是（Active javascript Action Xml）吧，说白一点就是运用了 javascript、xmlhttp和xmldom技术及网站后台来处理用户的一些操作的方法吧。<br/><br/>那么本人就分三步来说明如何使用 Ajax 技术来做开发。<br/><br/>一、用 javascript 操作 xmlhttp 对象<br/><br/>二、服务器部对xmlhttp请求的响应（PHP范例）<br/><br/>三、xmldom 的使用方法<br/><br/><br/>那费话少讲，先说第一部份：<br/><br/>一、用 javascript 操作 xmlhttp 对象<br/><br/>IE7, Mozilla ,Firefox等浏览器中，javascript是内置有 XMLHttpRequest 这个对象的，但IE5+则没有，需要用如下方法来启动：<br/>//IE 6<br/>try&#123; xhttp = new ActiveXObject("Msxml2.XMLHTTP");&#125; catch(e)&#123; ; &#125;<br/>//IE5+<br/>if(xhttp == null) try &#123; xhttp = new ActiveXObject("Microsoft.XMLHTTP");&#125; catch(e)&#123; ; &#125;<br/><br/>那考虑不同浏览器的兼容，启动一个xmlhttp一般都要按如下方式：<br/><br/><div class="code"><br/><br/>var xhttp = null;<br/><br/>if(window.XMLHttpRequest)&#123; //IE7, Mozilla ,Firefox 等浏览器内置该对象<br/><br/> &nbsp;xhttp = new XMLHttpRequest();<br/> &nbsp;<br/>&#125;else if(window.ActiveXObject)&#123; //IE6、IE5<br/><br/> &nbsp;try&#123; xhttp = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);&#125; catch (e)&#123; ; &#125;<br/> &nbsp;<br/> &nbsp;if( xhttp == null) try &#123; xhttp = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&#125; catch (e)&#123;; &#125;<br/> &nbsp;<br/>&#125;<br/></div><br/><br/>对于 xmlhttp 的使用，一般遵守如下的顺序：<br/><br/>1、初始化 xmlhttp 对象（上文）；<br/><br/>2、打开链接<br/><br/>方法<br/>xhttp.open("GET", purl, true); <br/><br/>参数一：用 GET 或 POST 方式发送数据<br/><br/>参数二、请求网址（只能请求你服务器上的资源，一般浏览器安全限制不能读取跨域的数据）<br/><br/>参数三、true 表示异步传输（服务器返回信息完成前，你可以进行其它操作），false 表示阻断方式的传输。<br/><br/>3、设定要发送的 http 请求头<br/><br/>方法：<br/><br/>xhttp.setRequestHeader(key,value);<br/><br/>一般来说，默认要发送的头是：<br/>xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");<br/><br/>这种表示发送的内容类型的请求头用于发送文本数据，而且javascript默认是以unicode发送的<br/><br/>还有另外一种形式是：<br/>xhttp.setRequestHeader("Content-Type","multipart/form-data");<br/><br/>是表示发送二制形式的数据，由于安全性原因，javascript一般不能用这种方式来发送数据，所以这个头一般没什么用。<br/><br/>如果你的网站开启了使用 refer 参数来防盗链，那么你必须用这个方法指定 Refer 参数，或者如果用户需要登录才能进行某操作，那么要指定 Cookie 的请求头。<br/><br/>4、send 数据<br/><br/>方法：xhttp.send(postdata);<br/><br/>对于用 get攻手请求，不需要指定postdata，直接用 test.php?a=a&b=b 这样形式的网址来请求即可。<br/><br/>如果是post方式，需要用 key1=value2&key2=value2 这样的形式来对数据进行处理，把它合并在 postdata 字串中，然后发送。<br/><br/>注意事项：<br/><br/>javascript默认发送数据的方式是unicode，处理返回的数据必须是utf-8格式，因此，在发送的时候，需要用escape()函数来处理postdata和网址的value，在服务器上必须还原这些value，并把unicode转为页面编码值，因此如果用 jsp 或 asp.net 都会比较简单，但如果用php处理起来是什么费劲的，等下会教你如何做。<br/><br/><br/>5、确认服务器返回资料完成下载<br/><br/>[1] 如果用阻断的方式来发送请求，那么直接用 if(xhttp.readyState == 4)就能判断是否完成。<br/><br/>readyState 的具体属性值为：<br/>0 没open<br/>1 没send<br/>2 状态未知<br/>3 正在传送<br/>4 传送完成<br/><br/>当然为了保障起见，还需要加多一重判断<br/><br/>就是 if(xhttp.status == 200) <br/><br/>status 就是 http 协议里的返回头代码<br/><br/>1xx 表示（唉呀，忘记了）<br/>2xx 表示成功的信息<br/>3xx 表示页面转移<br/>4xx 页面不存在<br/>5xx 表示服务器的各种错误<br/><br/>如果你的页面没特殊处理，一般用 if(xhttp.status == 200) &nbsp;来确信内容返回是正确的<br/><br/><br/>[2] 如果用异步传输，需要用 onreadystatechange 的事件来监听<br/><br/>xhttp.onreadystatechange = function()<br/>&#123;<br/> &nbsp; //这里来进行上面阻断方式的判断<br/> &nbsp; if(myajax.xhttp.readyState == 4)&#123;<br/> &nbsp;if(myajax.xhttp.status == 200)&#123;<br/> &nbsp; &nbsp;//要进行的后续操作<br/> &nbsp;&#125;<br/> &#125;<br/>&#125;<br/><br/>6、获取返回结果<br/><br/>属性：<br/>[1]xhttp.responseBody;<br/>[2]xhttp.responseStream;<br/>[3]xhttp.responseXml;<br/>[4]xhttp.responseText;<br/><br/>其中1、2都是二进制的方式，一般很少会用到，4不用看都知道了<br/><br/>如果服务端无意外的话[3]返回的是一个xmldom的对象<br/><br/>二、服务器部对xmlhttp请求的响应（PHP范例）<br/><br/>为了简化操作，在这里把 xmlhttp的各作操作封装为一个类<br/><div class="code"><br/>function DedeAjax(WiteOKFunc)&#123; //WiteOKFunc 为异步状态事件处理函数 <br/><br/>//xmlhttp和xmldom对象<br/>this.xhttp = null;<br/>this.xdom = null;<br/><br/>//post或get发送数据的键值对<br/>this.keys = Array();<br/>this.values = Array();<br/>this.keyCount = -1;<br/><br/>//http请求头<br/>this.rkeys = Array();<br/>this.rvalues = Array();<br/>this.rkeyCount = -1;<br/>//请求头类型<br/>this.rtype = &#039;text&#039;;<br/><br/>//初始化xmlhttp<br/>if(window.XMLHttpRequest)&#123;//IE7, Mozilla ,Firefox 等浏览器内置该对象<br/> &nbsp; &nbsp; this.xhttp = new XMLHttpRequest();<br/>&#125;else if(window.ActiveXObject)&#123;//IE6、IE5<br/> &nbsp; &nbsp; try &#123; this.xhttp = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);&#125; catch (e) &#123; &#125;<br/> &nbsp; &nbsp; if (this.xhttp == null) try &#123; this.xhttp = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&#125; catch (e) &#123; &#125;<br/>&#125;<br/>this.xhttp.onreadystatechange = WiteOKFunc;<br/>//rs: responseBody、responseStream、responseXml、responseText<br/><br/>//以下为成员函数<br/>//--------------------------------<br/><br/>//初始化xmldom<br/>this.InitXDom = function()&#123;<br/> &nbsp;var obj = null;<br/> &nbsp;if (typeof(DOMParser) != &quot;undefined&quot;) &#123; // Gecko、Mozilla、Firefox<br/> &nbsp; &nbsp;var parser = new DOMParser();<br/> &nbsp; &nbsp;obj = parser.parseFromString(xmlText, &quot;text/xml&quot;);<br/> &nbsp;&#125; else &#123; // IE<br/> &nbsp; &nbsp;try &#123; obj = new ActiveXObject(&quot;MSXML2.DOMDocument&quot;);&#125; catch (e) &#123; &#125;<br/> &nbsp; &nbsp;if (obj == null) try &#123; obj = new ActiveXObject(&quot;Microsoft.XMLDOM&quot;); &#125; catch (e) &#123; &#125;<br/> &nbsp;&#125;<br/> &nbsp;this.xdom = obj;<br/>&#125;;<br/><br/>//增加一个POST或GET键值对<br/>this.AddKey = function(skey,svalue)&#123;<br/> this.keyCount++;<br/> this.keys&#91;this.keyCount&#93; = skey;<br/> this.values&#91;this.keyCount&#93; = escape(svalue);<br/>&#125;;<br/><br/>//增加一个Http请求头键值对<br/>this.AddHead = function(skey,svalue)&#123;<br/> this.rkeyCount++;<br/> this.rkeys&#91;this.rkeyCount&#93; = skey;<br/> this.rvalues&#91;this.rkeyCount&#93; = svalue;<br/>&#125;;<br/><br/>//清除当前对象的哈希表参数<br/>this.ClearSet = function()&#123;<br/> this.keyCount = -1;<br/> this.keys = Array();<br/> this.values = Array();<br/> this.rkeyCount = -1;<br/> this.rkeys = Array();<br/> this.rvalues = Array();<br/>&#125;;<br/><br/>//发送http请求头<br/>this.SendHead = function()&#123;<br/> if(this.rkeyCount!=-1)&#123; //发送用户自行设定的请求头<br/> &nbsp; for(;i&lt;=this.rkeyCount;i++)&#123;<br/> &nbsp; &nbsp;this.xhttp.setRequestHeader(this.rkeys&#91;i&#93;,this.rvalues&#91;i&#93;); <br/> &nbsp; &#125;<br/> &nbsp;&#125;<br/>　if(this.rtype==&#039;binary&#039;)&#123;<br/> &nbsp; this.xhttp.setRequestHeader(&quot;Content-Type&quot;,&quot;multipart/form-data&quot;);<br/> &nbsp;&#125;else&#123;<br/> &nbsp; this.xhttp.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;);<br/> &nbsp;&#125;<br/>&#125;;<br/><br/>//用Post方式发送数据<br/>this.SendPost = function(purl)&#123;<br/> var pdata = &quot;&quot;;<br/> var i=0;<br/> this.state = 0;<br/> this.xhttp.open(&quot;POST&quot;, purl, true); <br/> this.SendHead();<br/> &nbsp;if(this.keyCount!=-1)&#123; //post数据<br/> &nbsp; for(;i&lt;=this.keyCount;i++)&#123;<br/> &nbsp; &nbsp;if(pdata==&quot;&quot;) pdata = this.keys&#91;i&#93;+&#039;=&#039;+this.values&#91;i&#93;;<br/> &nbsp; &nbsp;else pdata += &quot;&amp;&quot;+this.keys&#91;i&#93;+&#039;=&#039;+this.values&#91;i&#93;;<br/> &nbsp; &#125;<br/> &nbsp;&#125;<br/> &nbsp;this.xhttp.send(pdata);<br/>&#125;;<br/><br/>//用GET方式发送数据<br/>this.SendGet = function(purl)&#123;<br/> var gkey = &quot;&quot;;<br/> var i=0;<br/> this.state = 0;<br/> if(this.keyCount!=-1)&#123; //get参数<br/> &nbsp; for(;i&lt;=this.keyCount;i++)&#123;<br/> &nbsp; &nbsp;if(gkey==&quot;&quot;) gkey = this.keys&#91;i&#93;+&#039;=&#039;+this.values&#91;i&#93;;<br/> &nbsp; &nbsp;else gkey += &quot;&amp;&quot;+this.keys&#91;i&#93;+&#039;=&#039;+this.values&#91;i&#93;;<br/> &nbsp; &#125;<br/> &nbsp; if(purl.indexOf(&#039;?&#039;)==-1) purl = purl + &#039;?&#039; + gkey;<br/> &nbsp; else &nbsp;purl = purl + &#039;&amp;&#039; + gkey;<br/> &nbsp;&#125;<br/> this.xhttp.open(&quot;GET&quot;, purl, true); <br/> this.SendHead();<br/> &nbsp;this.xhttp.send();<br/>&#125;;<br/><br/>&#125; // End Class DedeAjax<br/></div><br/>上面代码保存为： dedeajax.js<br/><br/>ok 那现在做个最简单的测试吧<br/>test.htm<br/><div class="code"><br/>&lt;script language=&#039;javascript&#039; &nbsp;src=&#039;dedeajax.js&#039;&gt;&lt;/script&gt;<br/>&lt;script language=&#039;javascript&#039;&gt;<br/>function WiteOK()<br/>&#123;<br/> &nbsp; var myinfo = document.getElementById(&quot;myinfo&quot;);<br/> &nbsp; &nbsp;if(myajax.xhttp.readyState == 4)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;if(myajax.xhttp.status == 200)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myinfo.innerHTML = myajax.xhttp.responseText;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;&#125;<br/>&#125;<br/>var myajax = new DedeAjax(WiteOK);<br/>myajax.AddKey(&quot;key1&quot;,&quot;----------------------------&quot;);<br/>myajax.SendPost(&quot;test.php&quot;);<br/><br/>&lt;/script&gt;<br/><br/>&lt;div id=&#039;myinfo&#039;&gt;&lt;div&gt;<br/><br/></div><br/><br/>test.php<br/><div class="code"><br/>&lt;?<br/>header(&quot;Content-Type: text/html; charset=gb2312&quot;);<br/>echo $_POST&#91;&#039;key1&#039;&#93;;<br/>?&gt;<br/></div><br/><br/>看到了什么了呢？不用激动，真正让你头痛的东西还没有出来。<br/><br/>把类里面的<br/><div class="code"><br/>this.AddKey = function(skey,svalue)&#123;<br/> &nbsp; this.keyCount++;<br/> &nbsp; this.keys&#91;this.keyCount&#93; = skey;<br/> &nbsp; this.values&#91;this.keyCount&#93; = svalue;//escape(svalue);<br/>&#125;;<br/></div><br/>escape 屏蔽掉<br/><br/>发送 <br/>myajax.AddKey("key1","-----中---国----人-----");<br/><br/>看到什么了，乱码是吧？呵呵，这回开始头大了<br/><br/>先把 escape放回去<br/>this.values[this.keyCount] = escape(svalue);<br/><br/>那么看到的就是<br/>-----%u4E2D---%u56FD----%u4EBA-----<br/><br/>如何把 &nbsp;%u4E2D &nbsp;这些东西弄回来呢？对于php而言这是一个很复杂的问题，如果用asp就简单多了<br/><br/>下面是我写的一个函数：<br/><div class="code"><br/>//unicode url编码转gbk编码函数<br/>function Unicode2Gbk($str)<br/>&#123;<br/> //载入对照词典<br/> if(!isset($GLOBALS&#91;&#039;GbkUniDic&#039;&#93;))<br/> &#123;<br/> &nbsp; $ds = file(&quot;./data/gbk_unicode.dic&quot;);<br/> &nbsp; foreach($ds as $l)&#123;<br/> &nbsp; &nbsp;$GLOBALS&#91;&#039;GbkUniDic&#039;&#93;&#91;hexdec(&#039;0x&#039;.substr($l,0,4))&#93; = substr($l,5,4);<br/> &nbsp; &#125;<br/> &nbsp;&#125;<br/> &nbsp;//处理字符串<br/> &nbsp;$glen = strlen($str);<br/> &nbsp;$okstr = &quot;&quot;;<br/> &nbsp;for($i=0; $i &lt; $glen; $i++)<br/> &nbsp;&#123;<br/> &nbsp; &nbsp;if( $glen-$i &gt; 4)&#123;<br/> &nbsp; &nbsp; &nbsp;if($str&#91;$i&#93;==&#039;%&#039; &amp;&amp; $str&#91;$i+1&#93;==&#039;u&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $uni = hexdec(&#039;0x&#039;.substr($str,$i+2,4));<br/> &nbsp; &nbsp; &nbsp; &nbsp; if(isset($GLOBALS&#91;&#039;GbkUniDic&#039;&#93;&#91;$uni&#93;))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$uni = $GLOBALS&#91;&#039;GbkUniDic&#039;&#93;&#91;$uni&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$okstr .= chr(hexdec(substr($uni,0,2))).chr(hexdec(substr($uni,2,2)));<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; else $okstr .= &quot;&amp;#&#123;&quot;.hexdec(&quot;0x&quot;.$uni).&quot;;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $i = $i+5;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;else $okstr .= $str&#91;$i&#93;;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;else $okstr .= $str&#91;$i&#93;;<br/> &nbsp;&#125;<br/> &nbsp;return $okstr;<br/>&#125;<br/></div><br/><br/>词典文件： <a href="http://www.ce86.com/myimg/data.rar" target="_blank">http://www.ce86.com/myimg/data.rar</a><br/><br/><br/>把test.php 输出改为<br/><br/>echo Unicode2Gbk($_POST['key1']);<br/><br/>正常了吧:lol:<br/><br/>以下说下面和xml有关的东西的了<br/><br/>三、xmldom 的使用方法<br/><br/>由于本文仅是牵针引线的作用，这一章就简单些，因为针对的是 php ，如果针对的是 asp.net 或 jsp 写涉及 web server 类的通信，已经不单纯是 ajax &nbsp;的问题了，本章的任务是把<br/><br/>test2.php<br/><div class="code"><br/>&lt;?<br/>header(&quot;Content-Type: text/xml; charset=gb2312&quot;);<br/>echo &#039;&lt;&#039;.&#039;?&#039;.&quot;xml version=&#92;&quot;1.0&#92;&quot; encoding=&#92;&quot;gb2312&#92;&quot; &quot;.&#039;?&#039;.&quot;&gt;<br/>&lt;myhome&gt;<br/> &nbsp;&lt;item sex=&#92;&quot;男&#92;&quot;&gt;我是小一&lt;/item&gt;<br/> &nbsp;&lt;item sex=&#92;&quot;女&#92;&quot;&gt;我是小二&lt;/item&gt;<br/>&lt;/myhome&gt;<br/>&quot;;<br/>?&gt;<br/></div><br/><br/>这个xml文档在客户端用自己的方式展现出来。<br/><br/>因为xml这种东西比较麻烦，所以语法也必须严格，test2.htm的页面的源码为<br/><div class="code"><br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;<br/>&lt;title&gt;ajax测试&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body onload=&quot;WiteLoadDocument()&quot;&gt;<br/>&lt;script language=&#039;javascript&#039; &nbsp;src=&#039;dedeajax.js&#039;&gt;&lt;/script&gt;<br/>&lt;script language=&#039;javascript&#039;&gt;<br/>var myajax = new DedeAjax(WiteOK);<br/>function WiteOK()<br/>&#123;<br/> &nbsp; var myinfo = document.getElementById(&quot;myinfo&quot;);<br/> &nbsp; var mydom = null;<br/> &nbsp; myinfo.innerHTML = &quot;以下是处理结果：&lt;br/&gt;&quot;;<br/> &nbsp; if(myajax.xhttp.readyState == 4)&#123;<br/> &nbsp; &nbsp; mydom = myajax.xhttp.responseXml;<br/> &nbsp; &nbsp; alert(mydom);<br/> &nbsp; &#125;<br/>&#125;<br/>function WiteLoadDocument()<br/>&#123;<br/> &nbsp; myajax.SendGet(&quot;test2.php&quot;); <br/>&#125;<br/>&lt;/script&gt;<br/>&lt;div id=&#039;myinfo&#039;&gt;&lt;div&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/></div><br/>在IE中测试一下，如果弹出的对话框是 [object] 就表示成功获得返回的xml的xmldoc了。<br/><br/>那下面是处理：<br/><br/><div class="code"><br/>function WiteOK()<br/>&#123;<br/> &nbsp; var myinfo = document.getElementById(&quot;myinfo&quot;);<br/> &nbsp; var mydom = null;<br/> &nbsp; myinfo.innerHTML = &quot;以下是处理结果：&lt;br/&gt;&quot;;<br/> &nbsp; if(myajax.xhttp.readyState == 4)&#123;<br/> &nbsp; &nbsp; mydom = myajax.xhttp.responseXml;<br/> &nbsp; &nbsp; var nodeList = mydom.selectNodes(&quot;/myhome/item&quot;);<br/> &nbsp; &nbsp; var mynode = null;<br/> &nbsp; &nbsp; var myatt = null;<br/> &nbsp; &nbsp; var mysex = &quot;&quot;;<br/> &nbsp; &nbsp; for(i=1;i&lt;=nodeList.length;i++)<br/> &nbsp; &nbsp; &#123;<br/> &nbsp; &nbsp; &nbsp; mynode = nodeList&#91;i-1&#93;;<br/> &nbsp; &nbsp; &nbsp; for(j=0;j &lt; myinfo.attributes.length;j++)<br/> &nbsp; &nbsp; &nbsp; &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; if(!mynode.attributes&#91;j&#93;) break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; myatt = mynode.attributes&#91;j&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; if(myatt.name==&#039;sex&#039;) mysex = myatt.value;<br/> &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; myinfo.innerHTML += &quot;我是：&quot;+mynode.text+&quot;，我的性别是：&quot;+ mysex +&quot;&lt;br/&gt;&quot;;<br/> &nbsp; &nbsp; &#125;<br/> &nbsp; &#125;<br/>&#125;<br/></div><br/><br/>结果：<br/><br/><div class="code"><br/>以下是处理结果：<br/>我是：我是小一，我的性别是：男<br/>我是：我是小二，我的性别是：女<br/></div><br/><br/>OK，目的已经达到<br/><br/>关于dom的部份只在IE6中测试过，可能在firefox中会有问题，大家可能参考与兼容性有关的文档<br/><br/>-<br/><br/><br/>Tags - <a href="http://www.dzhope.com/tags/ajax/" rel="tag">ajax</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] Ajax技术一日通教程]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>