<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title><![CDATA[孤独行者]]></title>
<link>http://blog.pfan.cn/hotphen</link>
<description>编程爱好者博客</description>
<language>zh-cn</language>
			<item>
		<title><![CDATA[Windows&nbsp;Form&nbsp;FAQ]]></title>
		<link>http://blog.pfan.cn/hotphen/25488.html</link>
		<description><![CDATA[非常受用
参考地址http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c95c.aspx#q851q]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2007-05-03 02:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[如何解决网站被别的网站frame的时候Session丢失的问题]]></title>
		<link>http://blog.pfan.cn/hotphen/24139.html</link>
		<description><![CDATA[症状


如果别的站点要在Iframe中使用本网站的时候会发现，本网站实际上是不能保存Session的，如何被frame的页面如果像访问自己站点的Session会发现这个Session实际上是null,例如本网站上有一个登录窗口login.aspx，登录窗口登录之后就导航到index.aspx页面，index.aspx页面的访问需要login.aspx创建的Session["userid"]的存在，当我的这个网站被别的网站frame的时候，我们可以发现在login.aspx实际上是可以创建Session的，但是当页面导航到index.aspx的时候却发现Session已经丢失了，这就导致登录失败。
&nbsp;
原因
&nbsp;
Internet Explorer 6 引入用于隐私首选项 (P3P) 项目平台支持,如果 FRAMESET 或父窗口引用其他站点内 FRAME 或内子窗口, 子站点认为第三方内容。 它使用默认隐私设置是 中型 , InternetExplorer自动拒绝 Cookie 来自第三方站点。 
&nbsp;
解决方法
&nbsp;
1、把IE隐私级别设置为低，这个不好实现，不能要求用户改变设置。
2、IIS设置
在站点属性里选择HTTP头选项卡，在自定义Http头里点击添加按钮，在弹出的窗口中的“自定义HTTP头名“中输入
P3P
在”定义HTTP头名“中输入
CP="CAO PSA OUR"
即可，此项设置可以单独应用于某个目录而不应用于整个站点。]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2007-03-20 18:20:00</pubDate>
		</item>
				<item>
		<title><![CDATA[.net获取文件的内嵌图标]]></title>
		<link>http://blog.pfan.cn/hotphen/23466.html</link>
		<description><![CDATA[System.Drawing.Icon ico=System.Drawing.Icon.ExtractAssociatedIcon(path);]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2007-02-25 15:27:00</pubDate>
		</item>
				<item>
		<title><![CDATA[用.net截取屏幕区域到图片]]></title>
		<link>http://blog.pfan.cn/hotphen/23465.html</link>
		<description><![CDATA[g.CopyFromScreen(0,0,0,0,new Size(1280,1024));]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2007-02-25 15:24:00</pubDate>
		</item>
				<item>
		<title><![CDATA[javascript读取后台变量]]></title>
		<link>http://blog.pfan.cn/hotphen/22037.html</link>
		<description><![CDATA[default.aspx
function Button1_onclick() {var a=&lt;%= ret %&gt;;alert(a);return false;}
default.aspx.cs
public int ret = 10;]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-29 11:56:00</pubDate>
		</item>
				<item>
		<title><![CDATA[asp.net生成图片验证码的方法]]></title>
		<link>http://blog.pfan.cn/hotphen/21987.html</link>
		<description><![CDATA[新建一个页面image.aspx,添加命名空间：using System.Drawing.Imaging;using System.IO;&nbsp; 然后在Page_load事件拷入如下代码：&nbsp;&nbsp;&nbsp;//生成4位的验证码&nbsp;&nbsp; string tmp = RndNum(4);&nbsp;&nbsp;&nbsp;HttpCookie a = new HttpCookie("ImageV",tmp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Cookies.Add(a);&nbsp;&nbsp;&nbsp;this.ValidateCode(tmp);&nbsp; 接下来向该页面添加两个方法：private void ValidateCode(string VNum) &nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;Bitmap Img=null;&nbsp;&nbsp;&nbsp;Graphics g=null;&nbsp;&nbsp;&nbsp;MemoryStream ms=null;
&nbsp;&nbsp;&nbsp;int gheight=VNum.Length*12;&nbsp;&nbsp;&nbsp;Img=new Bitmap(gheight,25);&nbsp;&nbsp;&nbsp;g=Graphics.FromImage(Img);&nbsp;&nbsp;&nbsp;//背景颜色&nbsp;&nbsp;&nbsp;g.Clear(Color.White);&nbsp;&nbsp;&nbsp;//文字字体&nbsp;&nbsp;&nbsp;Font f=new Font("Arial Black",10);&nbsp;&nbsp;&nbsp;//文字颜色&nbsp;&nbsp;&nbsp;SolidBrush s=new SolidBrush(Color.Black);&nbsp;&nbsp;&nbsp;g.DrawString(VNum,f,s,3,3);&nbsp;&nbsp;&nbsp;ms=new MemoryStream();&nbsp;&nbsp;&nbsp;Img.Save(ms,ImageFormat.Jpeg);&nbsp]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-27 12:37:00</pubDate>
		</item>
				<item>
		<title><![CDATA[Asp.net页面传递参数的方法]]></title>
		<link>http://blog.pfan.cn/hotphen/21953.html</link>
		<description><![CDATA[1、要从源页传递一个参数到目标页,使用&nbsp;HttpRequest 对象的&nbsp;QueryString 属性
源页传递代码： Response.Redirect("TargetPage.aspx?userid=hotphen");
目标页接收代码：&nbsp;string struserid=&nbsp;Request.QueryString["userid"].ToString();
此方法的源页和目标页可以不在同一个应用程序中。
2、当一个页用来在页面间共享数据时可以使用源页的共享属性来完成，此方法只使用于页面在同一个应用程序之间
方法：源页定义一个属性，返回文本框的文本public String username
{
    get
    {
        return tb_username.Text;
    }
}
添加一个按钮，在Click事件中添加如下代码Server.Transfer("TartgetPage.aspx");在目标页中添加一个指向源页的 @&nbsp;PreviousPageType 页面指令：&lt;%@&nbsp;PreviousPageType VirtualPath="SourcePage.aspx" %&gt;然后编写目标页的接收代码：lb_username.Text = PreviousPage.username;3、要取得同一应用程序中源页的控件的值方法：在源页中放置一个TextBox控件，命名为tb_username,在放置一个按钮，在按钮的Click事件中编写如下代码Server.Transfer("TartgetPage.aspx");在目标页中可以通过如下方法获得源页中tb_username的文本if (Page.PreviousPage != null)
{
    TextBox SourceTextBox = 
        (TextBox)Page.PreviousPage.FindControl("tb_username");
    if (SourceTextBox != null)
    {
        Label1.Text = SourceTextBox.Text;
    }
}
FindControl 方法用于查找当前命]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-26 15:27:00</pubDate>
		</item>
				<item>
		<title><![CDATA[javascript验证email地址]]></title>
		<link>http://blog.pfan.cn/hotphen/21943.html</link>
		<description><![CDATA[function CheckEmail()&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var e = document.getElementById("textfield3").value;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(e != "") {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(e)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("请输入格式正确的 e-mail 地址！");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.open("http://www.faxems.com/lenovo/Testfree.aspx?email="+e);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-26 12:33:00</pubDate>
		</item>
				<item>
		<title><![CDATA[匹配特殊字符的正则表达式]]></title>
		<link>http://blog.pfan.cn/hotphen/21509.html</link>
		<description><![CDATA[^[^(&lt;|&gt;|;|,|'|&amp;|%|\\\\|~|!|@|#|$|%|\^|\*|\(|\)|=|+|{|}|\[|\]|\?|"|:|\-)]*?$
可以匹配^ &lt; &gt; ; , ' &amp; % \\ \ ~ ! @ # $&nbsp; * = + { } [ ] ? " : -等字符。]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-12 16:34:00</pubDate>
		</item>
				<item>
		<title><![CDATA[oracle&nbsp;substr()函数的用法]]></title>
		<link>http://blog.pfan.cn/hotphen/21392.html</link>
		<description><![CDATA[格式：substr(string,startindex,length)
示例：select * from tbl_faxreceivelist where substr(starttime,4,4)='Dec' and (to_number(substr(starttime,8,3))&gt;=1 and to_number(substr(starttime,8,3))&lt;=7) or (substr(starttime,6,2)='12' and to_number(substr(starttime,9,3))&gt;=1 and to_number(substr(starttime,9,3))&lt;=7)]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-12-08 18:19:00</pubDate>
		</item>
				<item>
		<title><![CDATA[如何获得字符串的字节数]]></title>
		<link>http://blog.pfan.cn/hotphen/20074.html</link>
		<description><![CDATA[string test="hello";
int cout=System.Text.Encoding.Default.GetByteCount(test);
count的值将是5.]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-11-08 17:46:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ASP.NET&nbsp;保存DataTable&nbsp;到Excel文件]]></title>
		<link>http://blog.pfan.cn/hotphen/19726.html</link>
		<description><![CDATA[private void SaveToExcel(DataTable objTable)&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int CountR = objTable.Rows.Count;//行数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int CountC = objTable.Columns.Count;//列数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Clear();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Buffer = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置Http的头信息,编码格式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.AppendHeader("Content-Disposition", "attachment;filename=result.xls");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.ContentType = "application/ms-excel";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置编码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Charset = "GB2312";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //写表头&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; CountC; i++)&nbsp;&nbsp;&]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-10-26 19:55:00</pubDate>
		</item>
				<item>
		<title><![CDATA[ORACLE的取整方法]]></title>
		<link>http://blog.pfan.cn/hotphen/19256.html</link>
		<description><![CDATA[round()四舍五入，如：
round(3.55)=4
round(3.12)=3
trunc()只取整数部分，如：
trunc(3.55)=3
trunc(3.12)=3]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-10-12 18:02:00</pubDate>
		</item>
				<item>
		<title><![CDATA[DotNet中获得Graphics对象的途径]]></title>
		<link>http://blog.pfan.cn/hotphen/17249.html</link>
		<description><![CDATA[1、使用窗体的Paint事件&nbsp;&nbsp; 使用窗体的Paint事件的PaintEventArgs参数来获取一个与窗体相关联的Graphics对象，例如下面的代码将获得一个与Form1相关联的Graphics对象private void form1_Paint(object sender,PaintEventArgs e){&nbsp;Graphics g =e.Graphics;}2、重载OnPaint方法&nbsp;&nbsp; 通过重载窗体的OnPaint方法也可以的到Graphics对象，例如protected override void OnPaint (PaintEventArgs e){&nbsp;Graphics g =e.Graphics;}3、通过窗体的CreateGraphics方法&nbsp;&nbsp; 当我们想通过按钮或菜单来创建Graphics时，使用CreateGraphics方法是个非常不错的选择，使用如下Graphics g =this.CreateGraphics();g.Dispose()值得注意的是，在用CreateGraphics创建Graphics对象时，必须通过显式的调用Dispose方法来释放与此对象相关的资源来释放这个对象。4、其他途径&nbsp;&nbsp; 可以通过Graphics类的FromImage，FromHwnd，FromHdc等静态方法非别从图象、窗口句柄、设备上下文的窗口句柄创建Graphics对象Bitmap bmp=new Bitmap(400,200,PixelFormat.Format32bppArgb);Graphics g=Graphics .FromImage(bmp);Graphics g2=Graphics FromHwnd(this.Handle);
&lt;完&gt;]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-08-04 17:33:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[摘抄]C#平台调用方法]]></title>
		<link>http://blog.pfan.cn/hotphen/17047.html</link>
		<description><![CDATA[原文地址http://www.51one.net/study/cc/2625.html#pinvoke_callingdllexport










平台调用服务 (PInvoke) 允许托管代码调用在 DLL 中实现的非托管函数。
本教程说明使用什么方法才能从 C# 调用非托管 DLL 函数。该教程所讨论的属性允许您调用这些函数并使数据类型得到正确封送。
教程
C# 代码有以下两种可以直接调用非托管代码的方法： 

直接调用从 DLL 导出的函数。 
调用 COM 对象上的接口方法（有关更多信息，请参见 COM Interop 第一部分：C# 客户端教程）。 
对于这两种技术，都必须向 C# 编译器提供非托管函数的声明，并且还可能需要向 C# 编译器提供如何封送与非托管代码之间传递的参数和返回值的说明。
该教程由下列主题组成： 

直接从 C# 调用 DLL 导出 
默认封送处理和为非托管方法的参数指定自定义封送处理 
为用户定义的结构指定自定义封送处理 
注册回调方法 
该教程包括下列示例： 

示例 1 使用 DllImport 
示例 2 重写默认封送处理 
示例 3 指定自定义封送处理 
直接从 C# 调用 DLL 导出
若要声明一个方法使其具有来自 DLL 导出的实现，请执行下列操作： 

使用 C# 关键字 static 和 extern 声明方法。 
将 DllImport 属性附加到该方法。DllImport 属性允许您指定包含该方法的 DLL 的名称。通常的做法是用与导出的方法相同的名称命名 C# 方法，但也可以对 C# 方法使用不同的名称。 
还可以为方法的参数和返回值指定自定义封送处理信息，这将重写 .NET Framework 的默认封送处理。 
示例 1
本示例显示如何使用 DllImport 属性通过调用 msvcrt.dll 中的 puts 输出消息。// PInvokeTest.cs
using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
    [DllImport("msvcrt.dll")]
    public static e]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-07-31 12:28:00</pubDate>
		</item>
				<item>
		<title><![CDATA[配置文件的读写]]></title>
		<link>http://blog.pfan.cn/hotphen/16921.html</link>
		<description><![CDATA[配置文件的读和写操作是许多软件都必须得操作，Windows API为我们提供了两个函数进行配置文件的读和写操作，这大大方便了我们的软件开发。
首先来看看配置文件的格式，一个格式正确配置文件应该是和下面类似的[节点1]子键1=键值子键2=键值子键3=键值。。。。。。[节点2]子键1=键值子键2=键值。。。。。。[节点3]。。。。。。
节点可以有任意个，节点名也可以随意取，关键是“[]”不能省，子键也可以有任意个，注意等号右边直接写键值，如果是字符串也不要加双引号，默认的就是字符串。加了反倒会在字符串上多处双引号。
接着我们来看看怎么进行读写，Windows API 为我们提供的这两个函数是：读函数GetPrivateProfileString写函数WritePrivateProfileString他们的声明如下：Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long我们先来介绍下这两个函数，lpApplicationName 指的是节点名，注意这是一个String 类型，所以调用的时候我们必须加双引号比如“节点1”；lpKeyName是子键名，调用的时候也要加双引号；lpDefault 是默认值，如果填的话接受区内将是这个值；lpReturnedStr]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-07-28 11:01:00</pubDate>
		</item>
				<item>
		<title><![CDATA[使用vb6.0实现无标题栏窗体的平滑移动]]></title>
		<link>http://blog.pfan.cn/hotphen/16873.html</link>
		<description><![CDATA[先说一下目前网络上流传的一种移动方法，这种方法的实现原理其实很简单，它是通过计算鼠标按下和放起的坐标差来确定移动后窗体的位置。首先在窗体的MouseDown事件中记录下移动前鼠标的位置，然后在MouseUp事件中也记录下鼠标的位置，通过计算这两个坐标的差值就可以确定窗体移动后的位置。这种方法的缺点是移动的时候跳跃感很明显，感觉比较别扭。
通过简单的API调用可以很好地实现无标题栏窗体的移动，可以不夸张地说没这种方法实现的效果比Microsoft做的还要好，而且实现也很简单，下面我们来看看这是怎么实现的。
使用的API函数Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long该函数可以获得鼠标在屏幕上的位置坐标，并把赋给一个POINTAPI类型变量。POINTAPI的定义如下Private Type POINTAPI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X As Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y As LongEnd Type
下面我们来实际的操作，首先建立一个标准EXE工程，把Form1的BorderStyle设为0-None，这样窗体的标题栏就没有了，进入窗体的代码界面输入下面的代码
'定义POINTAPI类型Private Type POINTAPI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X As Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y As LongEnd Type'API函数声明Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long'定义一个用于记录鼠标起始位置坐标的POINTAPI变量Dim scrPT As POINTAPI'在窗体的MouseDown事件中用API函数返回鼠标起始坐标Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Sin]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-07-27 18:10:00</pubDate>
		</item>
				<item>
		<title><![CDATA[[转载]如何创建复合控件]]></title>
		<link>http://blog.pfan.cn/hotphen/16823.html</link>
		<description><![CDATA[复合控件提供了一种创建和重用自定义图形界面的方法。复合控件本质上是具有可视化表示形式的组件。因此，它可能包含一个或多个 Windows 窗体控件、组件或代码块，它们能够通过验证用户输入、修改显示属性或执行作者所需的其他任务来扩展功能。可以按照与其他控件相同的方式将复合控件置于 Windows 窗体中。在本演练的第一部分，将创建一个名为 ctlClock 的简单复合控件。在本演练的第二部分，将通过继承扩展 ctlClock 的功能。




注意


显示的对话框和菜单命令可能会与“帮助”中的描述不同，具体取决于您现用的设置或版本。若要更改设置，请在“工具”菜单上选择“导入和导出设置”。有关更多信息，请参见 Visual Studio 设置。
创建项目

创建新的项目时应指定其名称，以设置根命名空间、程序集名称和项目名称，并确保默认组件将位于正确的命名空间中。 
创建 ctlClockLib 控件库和 ctlClock 控件



在“文件”菜单上，指向“新建”，然后单击“项目”打开“新建项目”对话框。

从 Visual C# 项目列表中选择“Windows 控件库”项目模板，在“名称”框中键入“ctlClockLib”，然后单击“确定”。 
默认情况下，项目名称 ctlClockLib 也被分配到根命名空间中。根命名空间用于限定程序集中的组件名。例如，如果两个程序集都提供名为 ctlClock 的组件，则可以使用 ctlClockLib.ctlClock. 指定 ctlClock 组件。

在解决方案资源管理器中，右击“UserControl1.cs”，然后选择“重命名”。将文件名更改为 ctlClock.cs。当系统询问是否要重命名对代码元素“UserControl1”的所有引用时，单击“是”按钮。




注意


默认情况下，复合控件从系统提供的 UserControl 类继承。UserControl 类提供了所有复合控件要求的功能，并实现了标准方法和属性。

在“文件”菜单上，单击“全部保存”保存项目。
向复合控件添加 Windows 控件和组件

可视化界面是复合控件的基本部分。这种可视化界面是通过向设计器图面添加一个或多个 Windows 控件实现的。在下面的演示中，将向复]]></description>
		<author><![CDATA[hotphen]]></author>
		<pubDate>2006-07-25 17:00:00</pubDate>
		</item>
		</channel>
</rss>